Node.js 有一个-e
命令行开关来评估命令行上提供的代码,而不是在单独的脚本文件中。
奇怪的是,我在网上找不到它的官方文档,但如果你运行,节点可执行文件会自行记录它node --help
:
>node --help
Usage: node [options] [ -e script | script.js ] [arguments]
node debug script.js [arguments]
Options:
-v, --version print Node.js version
-e, --eval script evaluate script
-p, --print evaluate script and print result
现在有几种在 JavaScript 中使用 Unicode 字面量的方法,似乎都以\u
.
但无论我如何尝试使用 Unicode 文字引用或转义字符串,代码总是无法执行。都在官方 Node.js 和 JXcore 下。
节点
>node -e console.log('hello \u00A9')
[eval]:1
console.log('hello
^^^^^^
SyntaxError: Unexpected token ILLEGAL
at Object.exports.runInThisContext (vm.js:53:16)
at Object.<anonymous> ([eval]-wrapper:6:22)
at Module._compile (module.js:435:26)
at node.js:578:27
at doNTCallback0 (node.js:419:9)
at process._tickCallback (node.js:348:13)
JXcore
>jx -e console.log('hello \u{00A9}')
SyntaxError: unterminated string literal ([eval] 1:12)
at ([eval]-wrapper:6:8)
at Module.prototype._compile (module.js:621:10)
at evalScript (node.js:1054:18)
at startup (node.js:419:7)
at node.js:1604:3
我试过双倍\\
和四倍\\\\
。我尝试过单引号和双引号字符来分隔字符串。
(我只是在 Windows 下尝试这个,以防万一这在 *nix 下可以正常工作。)