javascript - 函数可以看到在作用域之外声明的变量
问题描述
我想知道为什么函数可以看到变量“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
编辑:我在这里找到了一篇很好地回答了我的问题的文章
解决方案
推荐阅读
- php - 如何在 Wordpress 中将 PHP 版本从 5.4.16 更新到 5.6.20 或更新版本
- java - 如何获取Android操作系统中注册的所有Activity?
- css - WP Twentyseventeen 菜单颜色更改不起作用
- c++ - 添加qt库后编译错误
- maven - 使用 selenium webdriver maven 项目填写表单的最佳实践是什么?
- ios - 如何将我的 UIButton 标题绑定到我的 ViewModel
- c++ - 如何通过 std::thread 生成多个线程?
- android - Gradle 重复输入错误:META-INF/MANIFEST.MF(或如何从 jar 中删除文件)
- r - 如何在 R 中的大型数据集(15GB)上运行有监督的 ML 模型?
- php - 尝试部署我们的 S4 程序,调试时出现致命错误