作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有什么区别
"2" * 1 + 5
和
parseInt("2") + 5
只是为了写一个可读性更好的代码,或者第一种形式存在兼容性问题。
最佳答案
parseInt
用于从字符串中获取整数。考虑以下代码:
var myString = "3 blind mice";
var myInteger = parseInt(myString); //3
JavaScript 会自动进行类型转换,所以像这样:
"2" * 1 + 5 //7
字符串 "2"
被转换为数字。
正如上面评论中所指出的,parseInt
需要一个额外的参数作为基数。
JavaScript 有很多关于类型转换的非常奇怪的规则,有时并不清楚 JavaScript 在每种情况下会做什么。请记住,+
运算符也可用于连接和加法。
如果您试图将某些内容显式转换为数字,您可以使用 JavaScript 提供的 Number
构造函数。考虑以下因素:
var myString = "2";
var myNum = Number(myString); //2
console.log(typeof myNum); //number
如果没有new
关键字,它可以用来将字符串转换为数字。虽然它确实有效,但我不确定 parseInt
是否应该用于转换。只需使用 Number
构造函数。
关于javascript - 将 javascript 字符串隐式解析为整数有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116436/
我是一名优秀的程序员,十分优秀!