測(cè)試你的JS的掌握程度的代碼
更新時(shí)間:2009年12月09日 22:37:06 作者:
先不講文章的主題是什么,大家先來做做這些題目,看你能做對(duì)多少。這也是反映了你對(duì)JS基礎(chǔ)知識(shí)的掌握程度!
復(fù)制代碼 代碼如下:
<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個(gè)題目,你對(duì)了多少個(gè)呢?
這些題目我也不知道應(yīng)該去講解,只是想讓大家對(duì)自己做錯(cuò)的題目進(jìn)行更深一步的思考、挖掘。
下面我們來公布答案吧:
代碼
復(fù)制代碼 代碼如下:
<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>
給大家留下一個(gè)問題:3||6&&9的運(yùn)算結(jié)果是什么?
具體的分析可以看這里:&&和||運(yùn)算
內(nèi)容如下:
一直以為 && 和 || 這兩個(gè)運(yùn)算符只能在判斷表達(dá)式時(shí)使用,一般就是常在if語句使用。前段時(shí)間在公司的磨刀行動(dòng)的考核題目中,完全做錯(cuò)了。由于對(duì)這兩個(gè)運(yùn)算符不是很理解,只是簡(jiǎn)單的認(rèn)為是一個(gè)判斷表達(dá)式。當(dāng)時(shí)考試的題目:3||6&&9的運(yùn)算結(jié)果是什么?我居然寫的是true!
今天在博客園里看到了對(duì)這兩個(gè)講解,認(rèn)為很多人在這里還是存在誤區(qū)的。所以也把他記了下來。
我們先不看答案,先來對(duì)&& 和 || 的理解。我記得在以前的計(jì)算機(jī)書上看到過這兩個(gè)運(yùn)算符,他們的優(yōu)先級(jí)是:&&大于|| 。那&&又是怎么運(yùn)算的呢?
exp1&&exp2:如果執(zhí)行exp1后返回true,則執(zhí)行exp2并返回exp2的值;如果執(zhí)行exp1后返回false,則整個(gè)表達(dá)式返回exp1的值,exp2不執(zhí)行;
exp1 || exp2:如果執(zhí)行exp1后返回true,則整個(gè)表達(dá)式返回exp1的值,exp2不執(zhí)行;如果執(zhí)行exp1后返回false,則執(zhí)行exp2并返回exp2的值;
那下面我們來看答案吧:
3||6&&9:先運(yùn)算&&,由于6和9都大于0,即都為true,所以結(jié)果為 9。表達(dá)式變?yōu)?||9。由于3和9 都為true,則返回3。所以答案就是3。
由上面我又延伸幾個(gè)問題:false==0,true==0,false==null,false==undefined,false==""他們的值 又是什么呢?
在末尾我在給大家留個(gè)問題:&和&& 他們之間又有什么區(qū)別呢?
相關(guān)文章
JavaScript的Object.defineProperty詳解
本篇文章給大家詳細(xì)講述了JavaScript的Object.defineProperty的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友參考學(xué)習(xí)下。2018-07-07
html5+javascript制作簡(jiǎn)易畫板附圖
這篇文章主要介紹了使用html5+javascript制作的簡(jiǎn)易畫板,需要的朋友可以參考下2014-04-04
uniapp項(xiàng)目實(shí)踐自定義加載組件示例詳解
這篇文章主要為大家介紹了uniapp項(xiàng)目實(shí)踐自定義加載組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
使用js實(shí)現(xiàn)按鈕控制文本框加1減1應(yīng)用于小時(shí)+分鐘
正如標(biāo)題所言使用js實(shí)現(xiàn)按鈕控制文本框加1減1,此類主要應(yīng)用于小時(shí)+分鐘,下面有個(gè)不錯(cuò)的示例,喜歡的朋友可以參考下2013-12-12
網(wǎng)頁右側(cè)懸浮滾動(dòng)在線qq客服代碼示例
這篇文章主要介紹了網(wǎng)頁右側(cè)懸浮滾動(dòng)qq在線客服代碼示例,需要的朋友可以參考下2014-04-04

