深入理解es6里有代码如下
if( condition ){
console.log( typeof value )//引用错误,value is not defined
let value = "blue"
}
初始化value的语句不会执行,那么为什么我在空白文件中输入
console.log( typeof none )输出的是undefined,我这里没有声明none啊,除非typeof none算是声明none了。然后我输入
console.log( typeof myvalue)//undefined
console.log( myvalue)
发现myvalue is not defined,这说明typeof myvalue并不会声明一个未初始化的全局变量myvalue
typeof 对一个没声明的变量使用输出的为什么是undefined??
下面还有个问题
上面由于let不会发生变量提升,所以myvalue并没有声明,因此输出undefined
那么下面的代码为什么输出的是undefined,是因为let 创建的是块作用域内的value,而typeof value是全局环境下的value,因此输出undefine吗?
console.log( typeof value )//undefined
if( condition ){
let value = "blue"
}
相关分类