【发布时间】:2016-06-05 19:12:43
【问题描述】:
我在这里缺少什么?这符合预期:
var x = 1;
(function(){
// x === 1
})();
但是,
var x = 1;
(function(){
var x = x;
// x is undefined
})();
我认为 x 应该是 1。似乎var x = x 在分配 x 之前核对了它的值。这是一个错误吗?这似乎不太直观。
这种行为是否改变了?我记得以前做过like this 的事情。
供参考:
var x = 1;
(function(){
var y = x;
// y === 1
})();
还有:
var x = 1;
(function(){
x = x;
// x === 1
})();
【问题讨论】:
-
通常在声明 var 的任何地方,它都好像是在函数的最开头(在任何赋值之前)声明的。
标签: javascript var