之间的区别是什么
"2" * 1 + 5
和
parseInt("2") + 5
只是编写更易读的代码,或者第一种形式存在兼容性问题。
答案 0 :(得分:2)
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
构造函数。
答案 1 :(得分:0)
我不认为在第一种形式中使用强制存在兼容性问题,它是一种应该得到广泛支持的语言功能。
但是,由于您必须添加代码才能进行转换(* 1
与parseInt
),我会从样式角度投票parseInt
,因为它会影响您的意图清晰。有时很难在不使用隐式转换的情况下在javascript中保持类型。
不熟悉您的代码或使用javascript的人可能会想知道第一个表单的内容是什么。
另外,正如评论所示,parseInt
速度更快,所以这是一场胜利。