为什么使用指数运算符**用法会产生错误?

时间:2018-01-04 12:15:09

标签: javascript node.js raspberry-pi

我尝试使用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

1 个答案:

答案 0 :(得分:2)

node.js支持自v6.7以来的取幂运算符。但它需要--harmony标志。从v7开始,操作员开箱即用。

http://node.green/#ES2016-features-exponentiation------operator