如何在JavaScript中将字符串转换为整数?
当前回答
您可以使用加号。例如:
var personAge = '24';
var personAge1 = (+personAge)
然后您可以看到新变量的typebytypeofpersonAge1;这是数字。
其他回答
函数doSth(){var a=document.getElementById('input').value;document.getElementById('number').innerHTML=toNumber(a)+1;}函数toNumber(str){return+str;}<input id=“input”type=“text”><input onclick=“doSth()”type=“submit”><span id=“number”></span>
还有一个附带说明:MooTools有一个函数toInt(),用于任何本机字符串(或浮点(或整数))。
"2".toInt() // 2
"2px".toInt() // 2
2.toInt() // 2
我用这个
String.prototype.toInt = function (returnval) {
var i = parseInt(this);
return isNaN(i) ? returnval !== undefined ? returnval : - 1 : i;
}
var str = "7";
var num = str.toInt(); // outputs 7, if not str outputs -1
//or
var num = str.toInt(0); // outputs 7, if not str outputs 0
这样我总能得到一个整数。
以下是最简单的解决方案
let myNumber = "123" | 0;
更简单的解决方案
let myNumber = +"123";
最快的
var x = "1000"*1;
Test
这里有一些速度比较(仅限macOS)…:)
对于Chrome,“plus”和“mul”是最快的(>700000,00运算/秒),“Math.floor”是最慢的。对于Firefox,“plus”是最慢的(!)“mul”是最快的(>900000000操作/秒)。在Safari中,“parseInt”是最快的,“number”是最慢的(但结果非常相似,>130000<31000000)。因此Safari将字符串转换为int比其他浏览器慢10倍以上。所以获胜者是“mul”:)
您可以通过此链接在浏览器上运行它https://jsperf.com/js-cast-str-to-number/1
我还测试了var x=~~“1000”;。在Chrome和Safari上,它比var x=“1000”*1慢一点(<1%),在Firefox上则快一点(<1%)。
推荐文章
- 如何在禁用按钮上启用引导工具提示?
- Node.js全局变量
- 在前一个函数完成后调用另一个函数
- 将string (or char*)转换为wstring (or wchar_t*)
- JavaScript中两个日期之间的月份差异
- 如何同时运行两个jQuery动画?
- Java的assertEquals方法可靠吗?
- 字符串作为SQL数据库的主键
- 如何将FormData (HTML5对象)转换为JSON
- Object.hasOwnProperty()产生ESLint 'no-prototype-builtins'错误:如何修复?
- 从列中的字符串中删除不需要的部分
- 在c#中转换字符串为类型
- 如何将Node.js流的内容读入字符串变量?
- 两个感叹号?
- 如何在JavaScript中计算今天之前三个月的日期?