【发布时间】:2015-10-02 01:36:34
【问题描述】:
谁能解释一下 Crockford 在谈到 字符串常量 时的意思:
"当下标是合法标识符形式的字符串常量时,可以使用点表示法。"
http://javascript.crockford.com/survey.html
AFAIK 他将常量称为对象属性,但如果它们的值可能随时更改,为什么还要称为常量。
或者,他是否将这些称为常量,因为一旦定义了属性名称,它就永远不会改变?
如果我应该根据他的话制作一个伪代码,我会做这样的事情(注意这个代码只是为了澄清我的想法,它实际上不是javascript代码,尽管相同):
const const1 = 'name';
object person = {name = 'Ed'};
print person.const1 //it should print "Ed"
非常感谢你
【问题讨论】:
-
对于数字或表达式,您不能使用点符号。你用方括号代替。
-
如果
const1不是person对象的属性,则不会打印'Ed'。另外,请不要使用伪代码。 -
我不知道 constants 在 javascript 中的使用,这就是我选择使用类似伪代码的编码的原因。这样的文本让我很困惑:当下标是字符串常量时
-
他在这里通俗地使用“常数”这个词。他的意思是“特定的固定字符序列”。这与
const字符串完全不同,尽管它被称为const,但它仍然是一个变量,并且将在person[const]中使用。请记住,当 Crockford 编写此 JavaScript 时,甚至没有const变量类型。 -
@torazaburo 非常感谢。现在对我来说很有意义。我在这种“口语化”的使用中挣扎了很多。非常感谢您的评论。
标签: javascript string constants