什么是两者之间的区别?
a *= 1;
并且
a = +a;
在JavaScript中,如何将字符串转换为数字?
这两个方法都可以将一个string
转换成一个number
(整数或浮点数)。它们的行为与parseInt
和parseFloat
不同。但是,这两行代码之间有什么区别吗?
什么是两者之间的区别?
a *= 1;
并且
a = +a;
在JavaScript中,如何将字符串转换为数字?
这两个方法都可以将一个string
转换成一个number
(整数或浮点数)。它们的行为与parseInt
和parseFloat
不同。但是,这两行代码之间有什么区别吗?
a *= 1
a = +a
这是一个简单的赋值,使用一元加运算符。它会评估 a 并将其转换为数字。
一元加运算符和 parseInt 或 parseFloat 的主要区别在于,一元加可以将字符串表示的整数和浮点数以及非字符串值 true、false 和 null 转换,而 parseInt 和 parseFloat 只能分别将字符串转换为整数和浮点数。
另外,parseInt 方法允许您设置所使用的基数(进制 / 数字系统)。例如:
parseInt(a, 10); //decimal numeral system
没有区别,两者都尝试将值转换为数字,并分配乘法的值或一元加号+
的结果。
通过从空字符串开始,如果是字符串化的数字或仅数字,则两个结果都返回NaN
,在这两种情况下的结果都是一个数字。
var a, b;
a *= 1;
b = +b;
console.log(a, b);
a = 'foo';
b = 'foo';
a *= 1;
b = +b;
console.log(a, b);
a = '';
b = '';
a *= 1;
b = +b;
console.log(a, b);
a = '7';
b = '7';
a *= 1;
b = +b;
console.log(a, b);
a = 42;
b = 42;
a *= 1;
b = +b;
console.log(a, b);
0
。返回 undefined
将会得到 NaN
。 - scraaappy从技术角度来看没有区别。但是在这种情况下使用一元加运算符将字符串转换为数字可能更明显,使您的代码更易读。