当我使用包含 only {"test":1}
的 node.js 执行文件时,会引发 SyntaxError :
(function (exports, require, module, __filename, __dirname) { {"test":1}
^
SyntaxError: Unexpected token :
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
但是 {test:1}
(不带引号)或 var t = {"test":1}
工作正常。
我执行包含正在运行的代码的文件:node test.js
。
为什么?
最佳答案
{}
形成一个 block .
测试:
是一个 label ,这是有效的(但没有意义,因为没有循环)。
"test":
是一个字符串,后面跟一个冒号,这是废话。
var foo = {}
将 {}
置于不同的上下文中,因此它们形成了一个 object literal而不是一个 block 。在对象文字中,属性名称可以是标识符或字符串。
您的 test.js
内容看起来像 JSON,而不是 JavaScript。执行它没有任何意义,因为它不做任何事情。
关于javascript - 为什么属性名称中的引号会引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184688/