刷简书碰到一篇讲面试题的文章http://www.jianshu.com/p/55e54345829a
var x = 1;
if (function f() {}) {
x += typeof f;
}
x;
A. 1
B. "1function"
C. "1undefined"
D. NaN
我选的A,判断是function f(){}没有明显的return,那么函数默认返回undefined,if语句根本不会执行。
答案以及浏览器执行结果是C. "1undefined",if语句执行了。
function f(){}为何会转换成true?烦请哪位能详细解释下或者给个说明的文章。
因为function f(){}是个对象 , if的括号里面放的东西都会转换成true或者false .
上面如果写成 :
x就等于1了 , 因为function f(){}不等于true嘛 , 但是只有function f()的话 , if会把它强制转化成true 或者 false :
这样得到的就是一个true了