gpt4 book ai didi

JavaScript 语法高亮——status 是关键字吗? ——有什么用?

转载 作者:行者123 更新时间:2023-11-30 11:21:29 24 4
gpt4 key购买 nike

我的 vim 语法突出显示让我相信 status 是 JavaScript 中的关键字。

搜索所有我能找到的文章都是关于浏览器 JavaScript 中的 window.status 的文章。这是这个“关键字”status 的意思还是发生了一些不同的事情?

关键字status是什么?

最佳答案

这个答案实际上是不正确的。我可能混淆了 staticstatus。 Mozilla 网站有一个关于 window.status 的页面.它可能已经以这种方式完成,因此您不要尝试将该名称用作变量。这样您就不会无意中更新浏览器的状态栏。该功能不再有效,但我猜编辑器中的内容滞后了。


Mozilla documentation (这比 ECMA reference 更容易阅读,)我们在 Future reserved keywords 部分下找到 status 关键字。

因此,它被视为关键字。

但是,JavaScript 在各个地方接受保留关键字,例如在句号之后:

a = {}
a.default = 123
a.status = 555

这里我设置了对象 adefaultstatus 成员,尽管这两个名称在语言中被视为保留关键字。

实际上,如果您一直在使用 Promise 对象,您可能已经注意到 catch 关键字用作可能的回调之一:

Promise.all([a, b, c])
.then(...)
.catch(...) <-- this is a reserved keyword
.finally(...) <-- this is a reserved keyword

以下是相关的语法条目:

Identifier :
IdentifierName but not ReservedWord

MemberExpression :
PrimaryExpression
MemberExpression [ Expression ]
MemberExpression . IdentifierName <-- look at this one
MemberExpression TemplateLiteral
SuperProperty
MetaProperty
new MemberExpression Arguments

IdentifierName是任何标识符(或多或少 [A-Z_$][A-Z_0-9$]*,加上所有 Unicode 字符......它们实际上遵循标识符的 Unicode 定义。)包括保留关键字。

正如我们所见,您不应该以 ReserverWord 开始表达式,除了像 newsuper 这样的新异常(此处未显示,请参阅 SuperProperty。)

所以在严格模式下(即在节点模块中)如果你这样写你应该会得到一个错误:

status = 123

在非严格模式下,status 不是保留关键字,因此是允许的。

确保它在访问变量成员时有效的一种方法是使用数组语法。例如:

a['default'] = 123
a['status'] = 555

这样一来,名称就不会被您的编辑器突出显示为保留关键字。

关于JavaScript 语法高亮——status 是关键字吗? ——有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49684515/

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