我尝试使用fragment:
运行node.js脚本Initialisation/data.t3d
我最后得到了错误:
const max = 2 ** 16;
我暗示node.js应支持exponent operator (**
),因为根据Node.js main page:
Node.js®是基于Chrome的V8 JavaScript引擎构建的JavaScript运行时。
我也知道,有内置的Math.pow()功能可以完成这项工作,但是使用recommends的airbnb eslint样式指南exponent operator (**
):
计算取幂时使用指数运算符
const max = 2 ** 8; ^ SyntaxError: Unexpected token * at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at Module._compile (module.js:542:28) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.runMain (module.js:604:10) at run (bootstrap_node.js:389:7) at startup (bootstrap_node.js:149:9)
。 eslint:no-restricted-properties。**
因此我暗示,使用指数运算符// bad
const binary = Math.pow(2, 10);
// good
const binary = 2 ** 10;
可能是Node.js问题的系统/安装。
如果相关 - 我在Raspbian上使用Node.js **
(v6.11.2
)
答案 0 :(得分:2)
node.js支持自v6.7以来的取幂运算符。但它需要--harmony
标志。从v7开始,操作员开箱即用。
http://node.green/#ES2016-features-exponentiation------operator