首页 > 解决方案 > 函数可以看到在作用域之外声明的变量

问题描述

我想知道为什么函数可以看到变量“a”和“b”,即使它们是在函数范围之外声明和定义的?

function whichOneGreater() {
  a > b ? console.log("a: ", a) : console.log("b: ", b);
}

var a = 3/4;
var b = 4/9;

whichOneGreater()

如果我将变量名从 a 更改为 c

function whichOneGreater() {
  a > b ? console.log("a: ", a) : console.log("b: ", b);
}

var c = 3/4;
var b = 4/9;

whichOneGreater()

然后发生错误

script.js:2 Uncaught ReferenceError: a is not defined
    at whichOneGreater (script.js:2)
    at script.js:8

编辑:我在这里找到了一篇很好地回答了我的问题的文章

标签: javascriptscope

解决方案


推荐阅读