var x = 1;
if (function f() {}) {
x += typeof f;
}
console.log(x)
一开始想当然的以为答案是:‘1object’
最后结果为 "1undefined";
所涉及的知识点:
- 表达式:
(function f() {}) // if 括号括起来的是(条件)表达式,而不是函数申明,因为是表达式,所以if就没有办法在外面访问f,


- typeof
typeof 的返回值是字符串,typeof 也是唯一一个调用不声明变量或者函数不报错操作符(未经声明的变量,只有放在typeof里面才不会报错),调用没有申明的变量或函数都返回'undefined'
网友评论