我正在学习javascript,我无法理解全局变量和窗口变量之间的区别以及变量将存储在哪个命名空间
例如,
var a = 1;
alert(window.a);
这将创建警告窗口,消息为“1”。
let b = 1;
alert(window.b);
这将创建警告窗口,其中包含“未定义”消息。
但是如果没有在窗口空间中创建b,那么它就会被创建。当我们运行一个javascript程序时,会创建2个名称空间(一个用于全局,一个用于窗口)?
答案 0 :(得分:-1)
当JavaScript代码在浏览器中运行时,用户代码使用var
创建的全局变量是全局window
对象的属性。
let
声明一个仅存在于声明它的块中的变量。
在程序和函数的顶层,
let
与var
不同,不会在全局对象上创建属性。
block statement(也称为“复合语句”)用于对零个或多个语句进行分组。该块由{
和}
分隔,可以在任何可以使用单个语句的地方使用。