gpt4 book ai didi

javascript - 关于JavaScript对象属性名的一个问题

转载 作者:可可西里 更新时间:2023-11-01 02:30:36 25 4
gpt4 key购买 nike

我有一个关于 JavaScript 对象属性名称的问题。查看以下代码:

<!DOCTYPE html>
<meta charset="UTF-8">
<title>An HTML5 document</title>
<script>
var obj = {
123: 'go' // 123 is not a valid JavaScript name. No error here.
};
var obj2 = {
123a: 'go' // An Error occurred.
};
</script>

如果 JavaScript 对象的属性名称是有效的 JavaScript 标识符,则不需要对象属性名称的引号。

例如

({go_go: 'go'}); // OK
({go-go: 'go'}); // Fail

在上面的代码中,123a 是一个无效的 JavaScript 名称,它没有被引用。所以发生错误。但是 123 也是一个无效的 JavaScript 名称,而且它没有被引用,为什么这里没有错误?个人认为123一定要加引号。

谢谢!

最佳答案

看看 specification :

ObjectLiteral :    { }    { PropertyNameAndValueList }    { PropertyNameAndValueList  ,}PropertyNameAndValueList :    PropertyAssignment    PropertyNameAndValueList , PropertyAssignmentPropertyAssignment :    PropertyName : AssignmentExpression    get PropertyName ( ){ FunctionBody }    set PropertyName ( PropertySetParameterList ){ FunctionBody }PropertyName :      IdentifierName    StringLiteral    NumericLiteral

因此,属性名可以是标识符名称、字符串或数字。 123 是一个数字,而 123a 都不是上面的数字。

关于javascript - 关于JavaScript对象属性名的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5006049/

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