javascripts代码中的不同行为
首先:
(function(){
c();
var c=function (){
console.log("C");
}
})();
Error : Uncaught TypeError: c is not a function
VS
(function(){
c();
function c(){
console.log("C");
}
})();
C
第二名:
var a;
console.log(a);
a=10;
10
VS
(function(){
var a;
console.log(a);
a=10;
})()
undefined
请帮助我理解这种行为。 谢谢!
答案 0 :(得分:0)
(function(){c();var c=function (){console.log("C");}})()
c
尚未定义,所以这是一个错误。
(function(){c();function c(){console.log("C");}})()
function something() {}
始终为called at compile time,因此此处定义了c
。
var a;console.log(a);a=10;
赋值返回赋值的值,因此它是10
。这也是你可以写a = b = 4
的原因。
(function(){var a; console.log(a);a=10;})()
该函数不返回(没有return
)任何内容,因此它是undefined
。
如果我们在这里谈论console.log
结果,那么它们都是undefined
,因为a
尚未定义。