У Node.js есть переключатель командной строки -e
для оценки кода, предоставленного в командной строке, а не в отдельном файле сценария.Как использовать литералы Unicode с помощью 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
В настоящее время существует несколько способов использования литералов Unicode в JavaScript, все, казалось бы, начинаются с \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.)
Вы пытаетесь выполнить это из 'cmd.exe'? Или PowerShell? – mklement0
Из 'cmd.exe'. Я никогда не учился нравиться PowerShell. – hippietrail