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