javascript中未声明的变量用法

Par*_*ram 1 javascript jquery

如果我们尝试使用未声明但允许设置相同值的变量,为什么JavaScript会引发引用错误?

例如

a = 10; //creates global variable a and sets value to 10 even though its undeclared
alert(b); // throws reference error.
Run Code Online (Sandbox Code Playgroud)

那么为什么b,它的参考错误而不是a?

Poi*_*nty 7

这就是语言的运作方式.在非严格模式下,对未声明符号的赋值被隐式视为创建全局变量.在严格模式下,这是一个错误.

要使用严格模式,全局脚本块或函数应该以语句开头:

"use strict";
Run Code Online (Sandbox Code Playgroud)

也就是说,一个由字符串组成的简单表达式语句"use strict".这将防止意外创建全局变量(仍然可以显式创建),并强加一些其他限制.