【发布时间】:2013-03-10 04:13:07
【问题描述】:
如果可能的话,最好的方法是查看 Javascript 中预定义函数的底层代码。是否有说明这些代码是如何编码的文档,或者是实际查看底层代码的简单方法?
-
parseInt -
parseFloat isNaN
【问题讨论】:
如果可能的话,最好的方法是查看 Javascript 中预定义函数的底层代码。是否有说明这些代码是如何编码的文档,或者是实际查看底层代码的简单方法?
parseInt
parseFloat
isNaN【问题讨论】:
它们是本机函数,并且可能以您的 JS 引擎编写的语言进行编码 - 您需要联系它的源代码。
不过,您可能对描述算法工作原理的EcmaScript specification 更感兴趣。
如果幸运的话,对于某些功能,您甚至可能会找到 JS 等价物。您会在根据标准测试 ES 实现的页面上找到它们。
【讨论】:
console.log(parseInt) //=> function parseInt() { [native code] }
进一步查看后,我在 ECMAScript 规范中发现了这一点。 http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
调用parseInt函数时,会采取以下步骤:
调用parseFloat函数时,会采取以下步骤:
注意 parseFloat 只能将字符串的前导部分解释为数字值;它忽略任何字符 不能被解释为十进制文字符号的一部分,并且没有任何迹象表明任何此类字符是 忽略。
如果参数强制为 NaN,则返回 true,否则返回 false。
【讨论】:
这些函数是特定于浏览器的实现,而不是用 JS 编写的(除非有人决定用 JS 编写浏览器引擎)。虽然代码确实必须(理论上)遵守 ECMAScript 规范的行为。
【讨论】: