【发布时间】:2017-06-26 14:38:01
【问题描述】:
我刚刚开始学习 JS 并试图了解它是如何执行代码的。如果我运行以下代码:
console.log(a);
var a = 'hello world'
console.log(a);
第一行的输出是'undefined',第二行是'hello world'。我的问题是为什么 JS 没有做这些:
1) 在第一行给我一个错误,“a is not defined”,然后输出“hello world”。
2) 我知道 JS 有两个阶段 CREATION 和 EXECUTION,那么在这种情况下,在创建阶段结束时,JS 知道一个值已被定义为“hello world”。为什么它没有为两个 console.log 提供“hello world”?
谢谢
【问题讨论】:
-
第一个变量尚未定义(声明),然后它被声明,您可以在第二次尝试时打印它
-
只有具有初始
undefined值的变量创建被提升。a = 'hello world'赋值是执行的一部分。
标签: javascript