gpt4 book ai didi

javascript - JS : Why are variables allowed to be declared both with and without the `var` keyword. ..?

转载 作者:行者123 更新时间:2023-12-01 02:39:07 24 4
gpt4 key购买 nike

可以使用或不使用 var 关键字来声明 JavaScript 变量。

var a = 100; // this works!
b = 200; // and this does too!

也可以在不初始化的情况下声明变量。

var c;       // this is just as acceptable! 

但是为什么对于没有 var 的变量来说,在没有初始化的情况下声明是不正确的。

var c; 
d; // causes a reference error to occur!

为什么?

最佳答案

首先,您看到的是遗留行为。传统上,对未声明符号的赋值隐含地意味着应创建(声明)全局符号并将其设置为给定值。因此

x = 1;

x尚未声明时,被视为全局符号的隐式实例化。

提及未声明的符号,如下所示:

x;

是一个错误,因为该符号未声明。

在现代 JavaScript 中,当“严格”模式由于以下原因而生效时

"use strict";

声明(或者由于其他影响,可能是 Node.js 代码的情况),全局符号的隐式创建也是错误的。

通常,隐式全局符号实例化被认为是一个坏主意。浏览器 JavaScript 中的全局符号存在很大问题,因为全局命名空间受到严重污染。值得庆幸的是,可以轻松地将代码包装在函数作用域中,为符号创建“安全空间”,而不必担心浏览器强加奇怪的全局名称。

关于javascript - JS : Why are variables allowed to be declared both with and without the `var` keyword. ..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47687115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com