shf*_*hfx 10 javascript mysql ajax
首先 - 我的描述;)
我从服务器获得了一个XmlHttpRequests JSON响应.MySQL驱动程序将所有数据输出为字符串,PHP按原样返回,因此任何整数都以字符串形式返回,因此:
JS中的parseInt()函数是否有任何快速替代(hack)可以解析纯数字字符串,例如
var foo = {"bar": "123"};
...
foo.bar = parseInt(foo.bar); // (int) 123
Run Code Online (Sandbox Code Playgroud)
Ais*_*ina 38
要转换为整数,只需使用一元+运算符,它应该是最快的方法:
var int = +string;
Run Code Online (Sandbox Code Playgroud)
转换为其他类型可以以类似的方式完成:
var string = otherType + "";
var bool = !!anything;
Run Code Online (Sandbox Code Playgroud)
更多信息.
Chr*_*oph 12
在JavaScript类型转换是通过内置类型的构造函数完成无new,即
foo.bar = Number(foo.bar);
Run Code Online (Sandbox Code Playgroud)
这parseInt()在几个方面有所不同:
NaN首先,您是否真的记录它很慢并且导致问题?否则,我不会费心寻找解决方案,因为确实没有问题.
其次,我猜想由于parseInt是一个原生的JS方法,它将以非常快的方式实现,并且可能以VM的本机语言(可能是C,取决于浏览器/ VM)实现.我认为用纯JS制作更快的方法可能会遇到一些麻烦.=)
当然,我不是JS大师,所以我不确定,但这是我的直觉告诉我的,并且往往是"如何为libraryFunction()提供更快的替代方案的标准答案? " 的问题.
在json_encode()它之前将它转换为PHP中的int :
$foo->bar = (int)$foo->bar;
print('var foo = ' . json_encode($foo));
Run Code Online (Sandbox Code Playgroud)
顺便说一下,当使用parseInt时,最好总是指定第二个参数,除非你真的希望字符串从0开始被解释为八进制,依此类推:
parseInt('010', 10); // 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16631 次 |
| 最近记录: |