let 不会有变量提升;如果我在声明之前使用let,浏览器应该会报错;但是我的打印出来是未定义;是我理解错误还是我写法错误;
let和const声明的变量不会有声明提前,这意味着运行时执行上下文在没有进行词法绑定前,变量不可访问。
function foo(){
|
| not accessible
|
let a = 1
}
这里 第二行代码 没啥意义
第一行 打印 打印时
由于是 let所是 not define 因为没有提升
第二行 let xxx 不写应该也是这个错误
如果是 var 就是 undefined
因为 有了提升的变量 但是并没有指定或者复制
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
错误
Uncaught ReferenceError: a is not defined
表示变量未定义, 而不是指这个变量是undefined
, 如果变量variable
的值是undefined
, 那么console.log(variable)
应该输出undefined
而不应该报错.