题目
if (!(“b”in window)) {
var b = 1;
}
console.log(b);
控制台的打印结果是什么?
答案:undefined
Window 对象表示一个浏览器窗口或一个框架。Window 对象是全局对象,所有的表达式都在当前的环境中计算,所有的全局变量都是window的属性 。
JS中变量会预解析,所谓的预解析就是:在当前作用域中,JavaScript代码执行之前,浏览器首先会默认的把所有带var和function声明的变量进行提前的声明或者定义。
变量只有声明没有赋值,会返回undefined。
题中代码,其实引擎是这样读取的:
var b;
if (!(“b”in window)) {
b = 1;
}
alert(b);
(1)声明一个变量b。
(2)”b” in window 结果为true,!(“b” in window)结果为false。
(3)if语句不执行。
(4)alert(b),因为b只有声明没有赋值,所以结果是undefined
感谢阅读~~~
dvdf
始发于微信公众号: 前端麻辣烫