Number.isInteger方法和Node.js版本

时间:2016-10-06 15:46:59

标签: node.js

使用Node.js 4.5.0我得到了预期的行为

> console.log(Number.isInteger(42))
true

但是使用Node.js 0.10.36我收到了错误

> console.log(Number.isInteger(42))
TypeError: Object function Number() { [native code] } has no method 'isInteger'

我如何知道使用该版本所需的Node.js的 minimal 版本 Number.isInteger方法?

在点击Node.js CHANGELOG files后,我无法找到任何相关信息。

编辑1:node.green显示Node.js 0.12.16支持该方法。

编辑2:我也无法在V8 CHANGELOG中找到任何相关信息。

3 个答案:

答案 0 :(得分:3)

正如他们建议在他们的docs中进行照顾,Number.isInteger版本为supported,版本为0.12.16。虽然这不是最低版本,可能是0.12.3,它使用相同的v8 engine version

编辑#1:在此commit V8 3.24.11发布,但Node.js仅使用version 0.11.13中的V8 3.25.30.0。此外,我做了一些测试(在Xubuntu 16.04中):

Node.js v0.11.13 (V8 3.25.30.0)

> Number.isInteger(42)
true

Node.js v0.11.12 (V8 3.22.24.19)

> Number.isInteger(42)
TypeError: Object function Number() { [native code] } has no method 'isInteger'
    at repl:1:8
    at REPLServer.defaultEval (repl.js:130:27)
    at bound (domain.js:255:14)
    at REPLServer.runBound [as eval] (domain.js:268:12)
    at REPLServer.<anonymous> (repl.js:277:12)
    at REPLServer.EventEmitter.emit (events.js:104:17)
    at REPLServer.Interface._onLine (readline.js:202:10)
    at REPLServer.Interface._line (readline.js:531:8)
    at REPLServer.Interface._ttyWrite (readline.js:806:14)
    at ReadStream.onkeypress (readline.js:101:10)

请注意,在Node.js v0.11.12中,V8 3.22.24.19低于3.24.11,即added Number.isInteger时。因此,总的来说, Node.js v0.11.13 minimal 版本,其方法为'isInteger'。

答案 1 :(得分:1)

在V8 3.26.30中添加了

Number.isInteger()(请参阅this提交指出here),因此支持此方法的最小版本的Node.js为0.12.0

答案 2 :(得分:0)

Number.isInteger()defined in ES6;它需要一个实现ES6的Node版本。