gpt4 book ai didi

javascript - 将字符串常量理解为对象属性

转载 作者:行者123 更新时间:2023-11-28 18:59:27 25 4
gpt4 key购买 nike

有人可以向我解释一下 Crockford 在谈到字符串常量时的含义吗:

"The dot notation can be used when the subscript is a string constant in the form of a legal identifier."

http://javascript.crockford.com/survey.html

据我所知,他将常量称为对象属性,但如果它们的值可能随时发生变化,为什么还要称为常量。

或者,他是否将这些称为常量,因为一旦定义了属性名称,它就永远不会改变?

如果我应该根据他的话制作一个伪代码,我会做这样的事情(请注意,此代码只是为了阐明我的想法,尽管相同,但它实际上并不是 javascript 代码):

const const1 = 'name';
object person = {name = 'Ed'};
print person.const1 //it should print "Ed"

非常感谢

最佳答案

"The dot notation can be used when the subscript is a string constant in the form of a legal identifier."

这意味着在未更改的意义上是常量的字符串值可用于读取和写入相同的属性值。该消息是,尽管任何字符串值都可以在方括号表示法中使用,但它必须是使用点表示法编写的合法标识符。

例如,someObject["propertyName"] 与使用点表示法的 someObject.propertyName 含义相同。两者都是有效且有效的。然而,虽然 someObject["too....many...dots"] 有效并且可以使用方括号表示法,但 someObject.too....many...dots code> 不是合法标识符,不起作用。

<小时/>回复评论:

  1. 将“常量字符串”视为程序员用来访问属性值的名称:它在编写时是固定的,并且在代码运行时不会更改。

  2. 使用点表示法的属性名称不使用引号。object."property" 始终是非法的。

  3. 对象属性名称和变量名称可以具有相同的名称​​但不能引用相同的事物

    x;      // look for variable x in function scope.
    obj.x; // look for property x of object obj
    var x = obj.x; // transfer the value of obj.x to variable x
  4. 括号表示法中的属性名称是括号内的字符串值。如果这是一个字符串文字,它将被引用。如果它不是字符串文字,它将被计算为 JavaScript 表达式,并将结果用作属性名称。

    obj.color = "red";
    var prop = "color"
    obj[ prop]; // value of property specified by the expression (prop) is "red"

关于javascript - 将字符串常量理解为对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32899272/

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