javascript - 为什么下面的 Javascript 代码中只显示一条警报消息?

标签 javascript

为什么下面的 Javascript 代码中只显示一条警报消息?

var a = 1;
function f() {
    var a = 2;
    function n() {
       alert(a);
    }
    n();
}
f();

不应该出现 2 条警报消息吗?

最佳答案

不,不应该。您仅运行函数 f() 一次,并且在此期间,您仅运行函数 n() 一次。这意味着您也只运行警报一次,因此只显示一条警报消息。

它的工作原理基本上是这样的:

  1. (第 1 行)分配变量 a
  2. (第 2-8 行)创建函数 f()
  3. (第 9 行)运行函数 f()
    1. (第 3 行)分配变量 a
    2. (第 4-6 行)创建函数 n()
    3. (第 7 行)运行函数 n()
      • (第 5 行)提醒变量 a 的值
  4. 结束

如您所见,它只运行警报部分一次,而不是两次

关于javascript - 为什么下面的 Javascript 代码中只显示一条警报消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21363355/

相关文章:

javascript - Google map 折线点击不会触发 PolyMouseEvent

javascript - 如何在谷歌地图中的当前位置而不是标记上制作圆圈

javascript - 嵌套的 try、catch 和 async、await 请求

javascript - 自动幻灯片放映的 javascript 和 jquery 之间有什么区别吗?

javascript - 我可以在客户端和 Firebase 之间使用我自己的 NodeJS 服务器并仍然使用 "on()"之类的方法吗?

javascript - html页面的分页逻辑[Android Epub Reader]

javascript - 未捕获的语法错误 : Unexpected token ')' in underscore when looping throught template

javascript - jQuery:共享按钮(sharrre)在本地和服务器上不起作用?

javascript - JavaScript 上的自定义提示点

javascript - 对可排序元素进行排序后,如何获取包括数据属性的所有索引?