相关疑难解决方法(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并遇到了我认为奇怪的事情.有人能够解释以下内容吗?(我已将警报值包含在评论中)

为什么foo()内的第一个警报(msg)返回undefined而不是外部

var msg = 'outside';

function foo() {
  alert(msg); // undefined

  var msg = 'inside';
  alert(msg); // inside
}

foo();    
alert(msg); // outside
Run Code Online (Sandbox Code Playgroud)

考虑到这些都很好:

var msg = 'outside';

function foo() {
  alert(msg); // outside
}

alert(msg); // outside
Run Code Online (Sandbox Code Playgroud)

和:

var msg = 'outside';

function foo() {
  var msg = 'inside';
  alert(msg); // inside
}

alert(msg); // outside
Run Code Online (Sandbox Code Playgroud)

javascript scope

10
推荐指数
1
解决办法
7127
查看次数

标签 统计

javascript ×2

scope ×2

hoisting ×1

scoping ×1