javascript - IIFE 中的变量可在全局范围内访问
问题描述
这个 IIFE 的输出怎么是 5?
(function() {
var a = b = 5;
})();
console.log(b);
我尝试了 console.log(a) 但它给出了一个参考错误,正如预期的那样,“b”在全局范围内是如何存在的?
解决方案
发生这种情况仅仅是因为您声明b
为全局变量,而不是本地变量。
(function() {
var a = b = 5;
})();
由于,它可能看起来像是在本地定义的var
,但这仅适用于a
。
推荐阅读
- python - Python 3.6 中的奇怪输出
- flutter - 如何在 Flutter 开发中启用 spread(...) 操作符
- linux - 在 bash 脚本中重用虚拟文件
- javascript - 从类创建派生类型,但省略构造函数(打字稿)
- grouping - 如何使用 MSSQL2017 对多列值相同的多行进行分组或汇总
- javascript - js在行的初始文本中插入
- generics - 合并返回空集和空列表的方法
- python - 模块应该总是包含一个类吗?
- react-native - Expo/React Native 可以将大量加密数据保存到 iCloud 吗?
- visual-studio - 如果不发布到 IIS,发布配置文件是否可以设置 EnvironmentName?