一、 var val = 'smtg'; console.log('Value is ' + (val === 'smtg') ? 'Something' : 'Nothing');
數組
+號的優先級大於?prototype
結果等價於‘Value is true' ? 'Something' : 'Nothing'code
結果爲somethingit
二、switch是嚴格比較io
function showCase(value) { console.log( typeof value) //object switch(value) { case 'A': console.log('Case A'); break; case 'B': console.log('Case B'); break; case undefined: console.log('undefined'); break; default: console.log('Do not know!'); } } showCase(new String('A'));
最終結果返回的是Do not know!console
二、Array.isArray( Array.prototype ) 返回結果是true;function
Array.prototype是一個數組
三、object
var a = /123/, b = /123/; a == b a === b
即便正則的字面量一致, 他們也不相等.co
答案 false, falsecas
四、
var a=111111111111111110000,b=1111; console.log(a+b) 返回的結果依舊是111111111111111110000
js中能夠表示的最大整數不是2的53次方,而是1.7976931348623157e+308。 2的53次方不是js能表示的最大整數而應該是能正確計算且不失精度的最大整數,能夠參見js權威指南。 9007199254740992 +1仍是 9007199254740992 ,這就是由於精度問題,若是 9007199254740992 +11或者 9007199254740992 +111的話,值是會發生改變的,只是這時候計算的結果不是正確的值,就是由於精度丟失的問題。