測試你的JS的掌握程度的代碼

來源:互聯網
上載者:User

複製代碼 代碼如下:<script type="text/javascript">
function doTest(s) {
document.writeln(s + " : " + eval(s) + "<br />");
}
doTest("null==undefined"); //1:
doTest('null==""'); //2:
doTest('null==0'); //3:
doTest('0==""'); //4:
doTest('false==0'); //5:
doTest('false==""'); //6:
doTest('true==0'); //7:
doTest('true==1'); //8:
doTest('true==-1'); //9:
doTest('false==null'); //10:
doTest(''); //11:
doTest('false==undefined'); //12:
doTest('-0===+0'); //13:
doTest('-0==+0'); //14:
doTest('-(-0)===0'); //15:
doTest('false===(!true)'); //16:
doTest('typeof(null)'); //17:
doTest('typeof(false)'); //18:
doTest('typeof(undefined)'); //19:
doTest('typeof(1)'); //20:
doTest('typeof(+1.1)'); //21:
</script>

怎麼樣?自己給自己打下分,總共22個題目,你對了多少個呢?
這些題目我也不知道應該去講解,只是想讓大家對自己做錯的題目進行更深一步的思考、挖掘。
下面我們來公布答案吧:

代碼 複製代碼 代碼如下:<script type="text/javascript">
function doTest(s) {
document.writeln(s + " : " + eval(s) + "<br />");
}
doTest("null==undefined"); //1:null==undefined : true
doTest('null==""'); //2: null=="" : false
doTest('null==0'); //3: null==0 : false
doTest('0==""'); //4: 0=="" : true
doTest('false==0'); //5:false==0 : true
doTest('false==""'); //6: false=="" : true
doTest('true==0'); //7:true==0 : false
doTest('true==1'); //8:true==1 : true
doTest('true==-1'); //9: true==-1 : false
doTest('false==null'); //10:false==null : false
doTest(''); //11: : undefined
doTest('false==undefined'); //12:false==undefined : false
doTest('-0===+0'); //13:-0===+0 : true
doTest('-0==+0'); //14:-0==+0 : true
doTest('-(-0)===0'); //15:-(-0)===0 : true
doTest('false===(!true)'); //16:false===(!true) : true
doTest('typeof(null)'); //17:typeof(null) : object
doTest('typeof(false)'); //18:typeof(false) : boolean
doTest('typeof(undefined)'); //19:typeof(undefined) : undefined
doTest('typeof(1)'); //20:typeof(1) : number
doTest('typeof(+1.1)'); //21:typeof(+1.1) : number
</script>

給大家留下一個問題:3||6&&9的運算結果是什嗎?
具體的分析可以看這裡:&&和||運算
內容如下:
一直以為 && 和 || 這兩個運算子只能在判斷運算式時使用,一般就是常在if語句使用。前段時間在公司的磨刀行動的考核題目中,完全做錯了。由於對這兩個運算子不是很理解,只是簡單的認為是一個判斷運算式。當時考試的題目:3||6&&9的運算結果是什嗎?我居然寫的是true!
今天在部落格園裡看到了對這兩個講解,認為很多人在這裡還是存在誤區的。所以也把他記了下來。
我們先不看答案,先來對&& 和 || 的理解。我記得在以前的電腦書上看到過這兩個運算子,他們的優先順序是:&&大於|| 。那&&又是怎麼運算的呢?
exp1&&exp2:如果執行exp1後返回true,則執行exp2並返回exp2的值;如果執行exp1後返回false,則整個運算式返回exp1的值,exp2不執行;
exp1 || exp2:如果執行exp1後返回true,則整個運算式返回exp1的值,exp2不執行;如果執行exp1後返回false,則執行exp2並返回exp2的值;
那下面我們來看答案吧:
3||6&&9:先運算&&,由於6和9都大於0,即都為true,所以結果為 9。運算式變為3||9。由於3和9 都為true,則返回3。所以答案就是3。
由上面我又延伸幾個問題:false==0,true==0,false==null,false==undefined,false==""他們的值 又是什麼呢?
在末尾我在給大家留個問題:&和&& 他們之間又有什麼區別呢?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.