遇到了一個題目,很基礎,但是也很容易犯錯,看下唄。
var x = 1;
if (function f() {}) {
x += typeof f;
}
console.log(x);
你認爲結果是什麼?
當時我的第一反應是“1Function”。但是正確答案是 1undefined字符串。
這個題目主要是考查兩個基礎點:第一,ifl語句裏面放的是表達式;第二,typeof的返回值是字符串,typeof是在任何情況下都不會報錯的唯一的一個標識符。
這就可以解釋了,if語句把函數聲明變成了表達式,所以函數f就消失了,沒有定義。任何未定義就直接使用的變量會報錯,但是typeof是唯一不報錯的時候,返回undefined字符串,使用+連接字符串返回的還是字符串,最後結果就得1undefined。
就是一道簡單得題,但是不容易解釋清楚裏面的原理。成哥分享的,我也分享給大家,考查的很基礎很基礎。