使用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中找到任何相关信息。
答案 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)
答案 2 :(得分:0)
Number.isInteger()
是defined in ES6;它需要一个实现ES6的Node版本。