在下面的代码中
var x = 1;
(function () {
console.log(x);
var x = 2;
}());
Run Code Online (Sandbox Code Playgroud)
为什么当console.log(x),x未定义时?
TbW*_*321 10
可变吊装.实际代码就是这样执行的.
var x = 1;
(function() {
var x; // x = undefined
console.log(x);
x = 2;
})();
Run Code Online (Sandbox Code Playgroud)
编辑:关于利斯特先生的建议,有点关于变量提升.来自MDN(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var):
"变量声明,无论它们出现在哪里,都会在执行任何代码之前处理.用var声明的变量的范围是它的当前执行上下文,它是封闭函数,或者对于在任何函数之外声明的变量,全局."
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |