在 JavaScript 中,未声明的变量赋值可以在函数范围之外访问
Undeclared assignment of variables are accessed outside of the function scope in JavaScript?
通常,在函数内声明的变量(变量声明)只能由该函数及其内部函数访问。但是,函数内变量的未声明赋值可以通过使其成为全局变量来访问 JavaScript 中的函数 Scope 之外。为什么会这样?
var hello = function() {
number = 45;
};
hello();
console.log(number); // 45 is printed in the console
因为规范是这样说的。
将"use strict";
添加到文件或函数的顶部以禁止此操作。
未
出现在var
声明中的变量赋值被视为全局变量(全局上下文的属性)赋值。在"严格"模式下,此类分配会引发错误。
JavaScript的工作方式。如果正确声明number
,则全局不可见:
var hello = function() {
var number = 45;
}
hello();
console.log(number); // undefined is printed in the console
相关文章:
- 可以't访问JavaScript函数范围中的变量
- javascript onload函数范围查询
- JavaScript新函数范围ReferenceError
- JavaScript中的函数范围
- javascript中的函数范围错误
- 挖空 - 单击绑定到对象函数 - 范围问题
- 创建可在任何地方使用的 JS 函数?范围和功能“未定义”的问题
- JavaScript 函数范围
- 访问函数范围之外的变量时出现问题
- 函数范围规则(Google Apps 脚本项目)
- JavaScript 事件处理程序函数范围控件
- j查询函数范围混淆
- 带有 jQuery 函数范围的 Angular 2
- 在 JavaScript 中,未声明的变量赋值可以在函数范围之外访问
- 类型错误:在对象 [对象对象] 中找不到函数范围到对象.(第 4 行,文件“代码”)
- 从全局定义的函数访问函数范围链
- 为什么当“var”在函数范围内时,它的值不发生变化
- ExtJs6.0-Ext.application内部的Javascript事件处理程序函数范围
- JavaScript函数范围行为
- javascript中的函数范围