面試題小記

一、 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的話,值是會發生改變的,只是這時候計算的結果不是正確的值,就是由於精度丟失的問題。

相關文章
相關標籤/搜索