为什么let=0有效但var=0无效? [复制]

2023-12-19

为什么不

let=0

显示任何语法错误,但是

var=0

做? (我在Safari上测试过)

不过我尝试过

console.log(let)

但它有错误,似乎“let”不是一个已经定义的变量。为什么会发生这种情况?


Because var一直是一个关键词,但是let没有。所以添加时let对于该语言,TC39 委员会必须对其进行指定,以便使用的现有代码let作为标识符没有破坏。 (他们的主要规则之一是“不要破坏网络”,并且他们非常认真地对待它[谢天谢地]。)

So let是上下文中的关键字,例如let声明,但也可以是标识符:

let a = 42;                // Keyword, due to context
let = "I'm an identifier"; // Identifier, due to context 
console.log(a);
console.log(let);

请注意,在严格模式下("use strict"), let不能用作标识符;引入严格模式的规范也被保留let以及在严格模式下使用时的其他一些词(请参阅ECMAScript 第五版 §7.6.1.2 http://ecma-international.org/ecma-262/5.1/#sec-7.6.1.2),因为当然在该规范采用之前不存在严格模式代码,所以他们可以做到这一点。 (它didn't保留最终成为关键字的每个单词,因此有时他们确实必须非常仔细地定义事物。例如,async即使在严格模式下也是一个完全有效的标识符,但在之前有特殊含义function.)

"use strict";
let = "I'm an identifier"; // SyntaxError: Unexpected strict mode reserved word
console.log(let);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么let=0有效但var=0无效? [复制] 的相关文章

随机推荐

  • AngularJS:从带有 id 的 json 数组中获取数据

    我有一个 json 文件 其中存储了数据库中所有人的信息 我实际上用它来在网页中显示名字和姓氏 我想添加显示每个人的详细信息的可能性 为此 我使用此人的 id 如下所示 when people id templateUrl partials
  • 多重采样和内存使用

    对多重采样的简单解释意味着 例如 对于所有重复样本 8x MSAA 需要的帧缓冲区是非多重采样帧缓冲区空间的 8 倍 由于最新的显卡甚至支持 32x MSAA 这意味着仅 1600x1200 输出的颜色缓冲区就会使用 1600 1200 4
  • 想要 Excel 中的 VBA 读取非常大的 CSV 并创建 CSV 小子集的输出文件

    我有一个包含 120 万条文本记录的 csv 文件 字母数字字段用引号引起来 而日期 时间或数字字段则不然 例如 弗雷德 史密斯 01 07 1967 2 7 高街 任意镇 任意县 LS1 7AA 我想要做的是在Excel中编写一些VBA
  • Dokuwiki 出现 LDAP 错误:用户身份验证暂时不可用

    我正在尝试在本地计算机上使用 LDAP 设置 Dokuwiki Dokuwiki 版本为 2014 05 05 Ponder Stibbons 认证设置 authtype authldap 插件 Authldap 捆绑插件 设置 plugi
  • ajax 获取文件内容时显示加载图像

    我是 ajax 新手 阅读了一些教程来制作一个包含多个按钮的 lil 脚本 单击每个按钮都会在特定的 div 中加载一个 php 文件 因为我用这个 function loadXMLDoc var xmlhttp if window XML
  • 如何将浮点数或货币转换为本地化字符串?

    In Delphi1 using FloatToStrF or CurrToStrF will automatically use the DecimalSeparator character to represent a decimal
  • 如何将 Binder (mybinder.org) 与私有 Github 存储库结合使用?

    在审查了这个确切的问题之后 https github com jupyterhub binderhub issues 237 https github com jupyterhub binderhub issues 237 看来这个功能已经
  • 无法自动装配字段:无法连接到 com.sun.proxy.$Proxy22

    Caused by org springframework beans factory BeanCreationException Could not autowire field protected com cms service Fol
  • 加拿大邮政编码验证

    我需要验证加拿大邮政编码 例如 M4B 1C7 使用 C NET 正则表达式 加拿大邮政编码不能包含字母 D F I O Q 或 U 并且不能以 W 或 Z 开头 ABCEGHJKLMNPRSTVXY 0 9 ABCEGHJKLMNPRST
  • C++ 序列化性能

    我正在构建一个分布式 C 应用程序 该应用程序需要对在不同进程和计算机之间传递的简单数据结构进行大量序列化和反序列化 我对序列化复杂的类层次结构不感兴趣 但更感兴趣的是发送带有一些简单成员 例如数字 字符串和数据向量 的结构 数据向量通常可
  • 如何在Redis 6 docker库中启用tls/ssl?

    最新版本的Redis Docker引入了TLS SSL功能 但我无法弄清楚如何为最新版本的 Redis Docker 启用它 此外 我还想知道 对于Docker环境 如何修改IO线程数 对于多线程 也在Redis 6中引入 Docker 的
  • UTF-8 是 Ruby v.2 中的默认编码吗?

    Matz 在他的书中写道 为了使用 UTF 8 您必须在脚本的第一行添加编码注释 他给我们举了一个例子 coding utf 8 Specify Unicode UTF 8 characters This is a string liter
  • 在 Python 中将字符串列表转换为整数(或双精度数)

    我有很多看起来与此类似的字符串列表 list 4 5 5 763 6 423 5 6 77 10 我想将其转换为整数 或双精度 列表 但是 不断产生错误 gt gt gt lst 4 5 5 763 6 423 5 6 77 10 gt g
  • 为什么我无法使用 UPnP 单播 M-SEARCH 来代替 MultiCast M-SEARCH?

    早上好 我们决定尽可能使用 UPnP 我们在 239 255 255 250 1900 上使用 MultiCast 进行 M SEARCH 不过 我们正在研究如何处理客户在其网络上锁定 MultiCast 的情况 查看 UPnP 1 1 规
  • 为什么 openCV 中的 CvBlobDetector 位于旧库中?

    是否有更新的斑点检测 跟踪库 这不是一个好的图书馆吗 难道遗留代码不应该是旧的 无用的代码吗 有人知道吗 这是较新的斑点检测器 http opencv itseez com modules features2d doc common int
  • Jquery 查找类型的第一个直接子代

    我正在寻找一种方法来查找精确类型的元素的第一个直接子元素 让我们想象一下这个标记 div div p Stuff p div p Stuff 2 p p Stuff 3 p div 所以在这里 我想要得到的是 Stuff 2 作为直接子代的
  • 好友声明介绍的姓名

    我正在考虑 N3797 工作草案 有来自3 3 1 4的引用 好友声明 11 3 可能会引入一个 可能不可见的 名称 进入封闭的命名空间 进一步在 3 3 2 11 中我发现 友元声明指的是作为成员的函数或类 最近的封闭命名空间 但它们不会
  • Node.js:计算文件中的行数

    我有很大的文本文件 其范围在30MB and 10GB 如何使用以下命令计算文件中的行数Node js 我有这些限制 不需要将整个文件写入内存 执行该任务不需要子进程 不使用wc的解决方案 var i var count 0 require
  • 通过 SSH 传输文件 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在命令行上通过 SSH 连接到远程服务器 并尝试使用以下命令将目录复制到本地计算机上scp命令 但是 远程服务器返回此 使用 消息 Stewart
  • 为什么let=0有效但var=0无效? [复制]

    这个问题在这里已经有答案了 为什么不 let 0 显示任何语法错误 但是 var 0 做 我在Safari上测试过 不过我尝试过 console log let 但它有错误 似乎 let 不是一个已经定义的变量 为什么会发生这种情况 Bec