相关疑难解决方法(0)

Javascript函数范围和提升

我刚刚阅读了一篇关于Ben Cherry的JavaScript范围和提升的精彩文章,其中他给出了以下示例:

var a = 1;

function b() {
    a = 10;
    return;

    function a() {}
}
b();
alert(a);
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,浏览器将发出"1"警报.

我仍然不确定它为什么会返回"1".他说的一些事情就像是:所有的功能声明都被提升到顶部.您可以使用函数来调整变量的范围.仍然没有为我点击.

javascript scope scoping hoisting

85
推荐指数
3
解决办法
1万
查看次数

return语句后的函数声明全局变量不会被覆盖

我有一个如下的Javascript代码,http://jsfiddle.net/ramchiranjeevi/63uML/

var foo = 1;
function bar() {
    foo = 10;
    return;
    function foo() {}   
}

bar();
console.log(foo);  // returns 1
Run Code Online (Sandbox Code Playgroud)

执行代码时,将调用bar()函数,并使用值10覆盖全局变量,然后将日志打印为10,而不是将其打印为值1。

javascript closures

7
推荐指数
1
解决办法
2281
查看次数

标签 统计

javascript ×2

closures ×1

hoisting ×1

scope ×1

scoping ×1