说出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

posted @ 2015-06-23 18:43  墨锦念  阅读(172)  评论(0编辑  收藏  举报