说出x的结果,并解释为什么?
var x = 1;
if(function f(){}){
x += typeof f;
}
x; //x的结果是?
x=1undefined
首先是 if表达式的问题
if括号里,不一定非要用== !=等,如果表达式返回非boolean类型的,则非空就是true,null则是false
所以 这个if是true
然后是 作用域 问题
if括号里的表达式 作用域里声明的对象仅限于该括号里,其他地方都不认,所以 typeof f 就返回undefined
最后 += 就是 x = x + undefined = 1undefined