1
当我执行以下脚本时,alert语句正在打印函数为什么会这样呢? 执行上下文中会发生什么?为什么变量basicPattern的未定义值不打印?执行此脚本时执行上下文中会发生什么
function basicPattern(){
var o = 5;
return o;
}
var basicPattern;
console.log(basicPattern);
当我执行以下脚本时,alert语句正在打印函数为什么会这样呢? 执行上下文中会发生什么?为什么变量basicPattern的未定义值不打印?执行此脚本时执行上下文中会发生什么
function basicPattern(){
var o = 5;
return o;
}
var basicPattern;
console.log(basicPattern);
function basicPattern(){
var o = 5;
return o;
}
var basicPattern;
console.log(basicPattern);
求值与此相同(IE浏览器漏洞忽略):
var basicPattern;
basicPattern = function basicPattern(){
var o = 5;
return o;
};
console.log(basicPattern);
由于basicPattern
已经宣布,再次声明它不会有,因为声明 任何影响被悬挂和合并。如果你有分配5
它会是这样的:
var basicPattern;
basicPattern = function basicPattern(){
var o = 5;
return o;
};
basicPattern = 5;
console.log(basicPattern);
了解更多关于提升:http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting
谢谢老大.... – karthick
不知道我在下面 - 你希望'VAR basicPattern;'将其设置为'undefined' ? – pimvdb
@pimvdb:编辑了问题 – karthick
您编辑的代码为我打印'5'。 – pimvdb