相关疑难解决方法(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万
查看次数

JavaScript'吊装'

我遇到了JavaScript'hoisting',我没有弄清楚这段代码是如何起作用的:

var a = 1;

function b() {
    a = 10;
    return;

    function a() {}
}

b();
alert(a);
Run Code Online (Sandbox Code Playgroud)

我知道像(function a() {})这样的函数声明将被提升到函数b作用域的顶部,但是它不应该覆盖a(因为函数声明覆盖变量声明而不是变量初始化)的值,所以我期望警报的值会是10而不是1 !!

javascript hoisting

83
推荐指数
3
解决办法
9047
查看次数

标签 统计

hoisting ×2

javascript ×2

scope ×1

scoping ×1