当我使用包含 {"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
。
为什么?
答案 0 :(得分:6)
{}
形成block。
test:
是一个label,它是有效的(但由于没有循环,因此毫无意义)。
"test":
是一个字符串,后跟冒号,这是无意义的。
var foo = {}
将{}
置于不同的上下文中,因此它们形成object literal而不是块。在对象文字内,属性名称可以是标识符或字符串。
您的test.js
内容看起来像JSON,而不是JavaScript。执行它没有任何意义,因为它不会做任何事情。