问题此处是当我尝试在浏览器控制台中添加"2"+"2"-"2"
时,我得到的结果为20
。 "2"+"2"
返回"22"
(字符串),但"2"+"2"-"2"
返回20
(数字)。有人能解释为什么会这样吗?如何将字符串转换为数字?
答案 0 :(得分:8)
在javascript中:
+
运算符可以追加字符串或执行数字运算
但是 - * /只能在数值上执行
var a = "2";
var b = "2";
var c = "2";
var temp1 = a+b;
console.log("After + --> ",typeof(temp1) , temp1 );
var temp2 = temp1-c;
console.log("After - --> ",typeof(temp2) , temp2 );
var temp3 = temp1*c;
console.log("After * --> ",typeof(temp3) , temp3 );
var temp4 = temp1/c;
console.log("After / --> ",typeof(temp4) , temp4 );
以下是有关此内容的精彩文章: Read More (+) / Read More (-)
操作数+操作数=结果
- 如果至少有一个操作数是一个对象,则将其转换为原始值(字符串,数字或布尔值);
- 转换后,如果至少有一个操作数是字符串类型,则第二个操作数将转换为字符串,并且连接为 执行;
- 在其他情况下,两个操作数都转换为数字并执行算术加法。
醇>如果两个操作数都是基本类型,则运算符至少检查 一个是字符串并执行连接。在其他情况下它只是 将所有内容转换为数字和总和。
对于所有其他运营商: Do Read