当前位置:  开发笔记 > 编程语言 > 正文

parseInt替代方案

如何解决《parseInt替代方案》经验,为你挑选了4个好方法。

首先 - 我的描述;)

我从服务器获得了一个XmlHttpRequests JSON响应.MySQL驱动程序将所有数据输出为字符串,PHP按原样返回,因此任何整数都以字符串形式返回,因此:

JS中的parseInt()函数是否有任何快速替代(hack)可以解析纯数字字符串,例如

var foo = {"bar": "123"};
...
foo.bar = parseInt(foo.bar); // (int) 123

Aistina.. 38

要转换为整数,只需使用一元+运算符,它应该是最快的方法:

var int = +string;

转换为其他类型可以以类似的方式完成:

var string = otherType + "";
var bool = !!anything;

更多信息.



1> Aistina..:

要转换为整数,只需使用一元+运算符,它应该是最快的方法:

var int = +string;

转换为其他类型可以以类似的方式完成:

var string = otherType + "";
var bool = !!anything;

更多信息.


这不解析为int,它解析为数字.例如+"1.5"=== 1.5
这个答案是旧的,并且不正确,这不会转换为整数

2> Christoph..:

在JavaScript类型转换是通过内置类型的构造函数完成new,即

foo.bar = Number(foo.bar);

parseInt()在几个方面有所不同:

前导零不会触发八进制模式

浮点值也将被解析

解析整个字符串,即如果它包含其他非数字字符,则返回值为 NaN



3> Daniel Bruce..:

首先,您是否真的记录它很慢并且导致问题?否则,我不会费心寻找解决方案,因为确实没有问题.

其次,我猜想由于parseInt是一个原生的JS方法,它将以非常快的方式实现,并且可能以VM的本机语言(可能是C,取决于浏览器/ VM)实现.我认为用纯JS制作更快的方法可能会遇到一些麻烦.=)

当然,我不是JS大师,所以我不确定,但这是我的直觉告诉我的,并且往往是"如何为libraryFunction()提供更快的替代方案的标准答案? " 的问题.


你应该使用parseInt("07",10)

4> Greg..:

json_encode()它之前将它转换为PHP中的int :

$foo->bar = (int)$foo->bar;
print('var foo = ' . json_encode($foo));

顺便说一下,当使用parseInt时,最好总是指定第二个参数,除非你真的希望字符串从0开始被解释为八进制,依此类推:

parseInt('010', 10); // 10

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有