6
A
回答
13
编辑:
我不是100%肯定,为什么parseInt
不是String
的方法,不同的是它可以在任何东西上运行。似乎它可能是Math
的一部分,但它也不是一个真正的数学运算。
结束编辑
parseInt
是全局对象的方法。在浏览器中,全局对象是window
。您可以拨打window.parseInt()
,但JS引擎可以让您快速调用全局方法。
也就是说,由于引擎必须扫描范围链以查找parseInt
的定义,因此需要付出一些代价。一般来说,如果我想提出一个单一的范围内,这样的方法调用,我将引用它关闭全球:如果我的代码需要的范围内,使超过一个方法调用
var foo = function (someString) {
var bar;
// ...
bar = window.parseInt(someString, 10);
// ...
};
,但是,我将其本地化并使用参考:
var foo = function (someString, someOtherString) {
var parseInt = window.parseInt,
bar,
baz;
// ...
bar = parseInt(someString, 10);
baz = parseInt(someOtherString, 10);
// ...
};
相关问题
- 1. 为什么使用Number.parseInt而不是parseInt()?
- 2. 为什么parseInt(“09”)返回0,但parseInt(“07”)返回7?
- 3. 为什么parseInt(“123abcd”)和parseInt(“abcd123”)的结果在JavaScript中有所不同?
- 4. 为什么parseInt(“014”)出现到12?
- 5. 为什么“console.log(parseInt(0o22,8))”显示“1”
- 6. 在JavaScript:为什么parseInt(“08”)评估为零,但parseInt(08)评估罚款?
- 7. 实施parseInt函数方法
- 8. NumberFormatExceptions被无处不在抛出。为什么? (parseInt)
- 9. 为什么不会parseInt与领先的0的大量工作?
- 10. 为什么`(['1','2','3'])。map(parseInt)`得不到正确的结果?
- 11. 为什么parseInt函数(08 ')被给予0,而parseInt函数(07')是给7
- 12. 为什么我不能调用方法?
- 13. 为什么Finalize方法不能覆盖
- 14. 为什么getAppProperty()不是静态方法?
- 15. 为什么NSNumber比较方法不同?
- 16. 为什么log4javascript.trace方法不起作用?
- 17. 为什么java.time.LocalDateTime不提供toDate()方法?
- 18. 为什么DrawableCompat.setTint()方法不正确?
- 19. 为什么Acumatica找不到方法
- 20. 为什么我的方法找不到?
- 21. 为什么不调用这个方法?
- 22. 为什么不调用paintComponent()方法?
- 23. 为什么FileSystemInfo不声明GetAccessControl方法?
- 24. 为什么不检测Get方法?
- 25. 为什么ICollection不包含Add方法?
- 26. 为什么我的方法不认证?
- 27. Java - 为什么不显示方法?
- 28. 为什么Stream.CopyTo不是扩展方法?
- 29. 为什么laravel 5.4看不见()方法
- 30. 为什么Math.random方法不工作?
因为如果X未定义,它会引发错误? – jishi 2012-02-21 14:51:15
@jishi:如果'X'是'undefined',那么在尝试访问一个属性时总是会出错。不知道'parseInt'不是'Number'方法会怎么做。 – 2012-02-21 14:53:15
@amnotiam'parseInt(undefined)=== NaN'如果'parseint'是'String'或'Number'的方法,那么'undefined.parseInt()'会抛出一个异常而不返回'NaN' – JaredMcAteer 2012-02-21 15:05:09