使用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方法所需的最低版本的Number.isInteger
?
在查看Node.js CHANGELOG 文件之后,我找不到任何相关的信息。
编辑1:node.green显示Node.js 0.12.16支持该方法。
编辑2:我也无法在V8 变化量g中找到任何相关信息。
发布于 2016-10-06 08:12:58
正如他们在文档中推荐的那样,Number.isInteger
是0.12.16版的支持。尽管这不是最低版本,可能是0.12.3,它使用相同的v8引擎版本。
编辑1:在这个提交中发布了V8 3.24.11,但是Node.js只使用了版本 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,即当它们已添加 Number.isInteger
时。因此,总之,Node.js v0.11.13是具有方法“isInteger”的最小版本。
发布于 2016-10-06 15:06:58
发布于 2016-10-06 07:48:21
Number.isInteger()
是在ES6中定义;它需要一个实现ES6的节点版本。
https://stackoverflow.com/questions/39900420
复制