測試你的JS的掌握程度的代碼
更新時間:2009年12月09日 22:37:06 作者:
先不講文章的主題是什么,大家先來做做這些題目,看你能做對多少。這也是反映了你對JS基礎(chǔ)知識的掌握程度!
復(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個題目,你對了多少個呢?
這些題目我也不知道應(yīng)該去講解,只是想讓大家對自己做錯的題目進行更深一步的思考、挖掘。
下面我們來公布答案吧:
代碼
復(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>
給大家留下一個問題:3||6&&9的運算結(jié)果是什么?
具體的分析可以看這里:&&和||運算
內(nèi)容如下:
一直以為 && 和 || 這兩個運算符只能在判斷表達式時使用,一般就是常在if語句使用。前段時間在公司的磨刀行動的考核題目中,完全做錯了。由于對這兩個運算符不是很理解,只是簡單的認(rèn)為是一個判斷表達式。當(dāng)時考試的題目:3||6&&9的運算結(jié)果是什么?我居然寫的是true!
今天在博客園里看到了對這兩個講解,認(rèn)為很多人在這里還是存在誤區(qū)的。所以也把他記了下來。
我們先不看答案,先來對&& 和 || 的理解。我記得在以前的計算機書上看到過這兩個運算符,他們的優(yōu)先級是:&&大于|| 。那&&又是怎么運算的呢?
exp1&&exp2:如果執(zhí)行exp1后返回true,則執(zhí)行exp2并返回exp2的值;如果執(zhí)行exp1后返回false,則整個表達式返回exp1的值,exp2不執(zhí)行;
exp1 || exp2:如果執(zhí)行exp1后返回true,則整個表達式返回exp1的值,exp2不執(zhí)行;如果執(zhí)行exp1后返回false,則執(zhí)行exp2并返回exp2的值;
那下面我們來看答案吧:
3||6&&9:先運算&&,由于6和9都大于0,即都為true,所以結(jié)果為 9。表達式變?yōu)?||9。由于3和9 都為true,則返回3。所以答案就是3。
由上面我又延伸幾個問題:false==0,true==0,false==null,false==undefined,false==""他們的值 又是什么呢?
在末尾我在給大家留個問題:&和&& 他們之間又有什么區(qū)別呢?
相關(guān)文章
一個不錯的應(yīng)用,用于提交獲取文章內(nèi)容,不推薦用
一個不錯的應(yīng)用,用于提交獲取文章內(nèi)容,不推薦用...2007-03-03學(xué)習(xí)javascript,實現(xiàn)插入排序?qū)崿F(xiàn)代碼
首先新建一個空列表,用于保存已排序的有序數(shù)列(我們稱之為"有序列表")。從原數(shù)列中取出一個數(shù),將其插入"有序列表"中,使其仍舊保持有序狀態(tài)。2011-07-07