javascript区分破折号吗?
尝试使用test['tested-by']
来代替。经测试通过的模样测试减去
最佳做法通常是避免它。我更喜欢'.'语法,但这是正确的。 – tjameson 2011-05-24 06:32:59
请参阅http://mathiasbynens.be/notes/javascript-properties和http://mothereff.in/js-properties#tested-by :) – 2012-07-29 07:45:33
您需要使用:
test["tested-by"]
这种方式可以提供任何属性的名称,甚至保留关键字(如“类”)。
在这里看到另一个问题:What characters are valid for JavaScript variable names?
基本上, - 是不是在JavaScript中有效的变量字符。
-
字符也不是有效的IdentifierName
字符,这意味着您不能使用点符号。 test.tested-by
不访问属性tested-by
。 (您可以使用test['tested-by']
。)
这与变量名称无关,而与属性名称无关。规则是相似的,但不完全一样:http://mathiasbynens.be/notes/javascript-properties – 2012-07-29 07:45:07
从该网站:'点符号只能用于当属性名称是一个有效的标识符名称.'这就是你正试图在你的问题上做。 – Arjan 2012-07-29 07:57:15
不是我的问题(我不是OP)。无论如何,JavaScript中的变量名称是“标识符”,而不是“标识符名称”(这是适用于属性名称的语法)。你混淆了两者。 “标识符”是不是“保留字”的“标识符名称”。例如,'var default;'抛出一个'SyntaxError',而'var object = {default:42};'根据规范罚款。有关更多信息,请参阅http://mathiasbynens.be/notes/javascript-identifiers。换句话说,你的回答是正确的,但这不是OP问题的答案。 – 2012-07-29 20:36:22
请参阅http://mathiasbynens.be/notes/javascript-properties和http://mothereff.in/js-properties#tested-by :) – 2012-07-29 07:45:59