JS 面試題

這題的詳細解釋來自:http://www.cnblogs.com/xcr1234/p/5527816.html

var x = 1;
if (function f() {}) {
    x += typeof f;
}
console.log(x);

A. 1
B. “1function”
C. “1undefined”
D. NaN
1)首先在if判定中,函數f的布爾值是true;所以判定條件成立,可以執行if中的語句

2)函數f在正常聲明的情況下,typeof f應該是”function”

3)但是題目中f函數只是if的判定條件,沒有經過聲明;所以typeof f返回”undefined”,所以答案是C

//單獨聲明的情況下,f是函數類型

function f(){}
typeof f //"function"

但題目中f作爲一個if中的判定條件存在,未得到聲明

if(function f(){}){

}
typeof f //"undefined"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章