Javascript强制概念需要澄清

时间:2018-02-08 06:18:33

标签: javascript jquery

问题此处是当我尝试在浏览器控制台中添加"2"+"2"-"2"时,我得到的结果为20"2"+"2"返回"22"(字符串),但"2"+"2"-"2"返回20(数字)。有人能解释为什么会这样吗?如何将字符串转换为数字?

1 个答案:

答案 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 (-)

  

操作数+操作数=结果

     
      
  1. 如果至少有一个操作数是一个对象,则将其转换为原始值(字符串,数字或布尔值);
  2.   
  3. 转换后,如果至少有一个操作数是字符串类型,则第二个操作数将转换为字符串,并且连接为   执行;
  4.   
  5. 在其他情况下,两个操作数都转换为数字并执行算术加法。
  6.         

    如果两个操作数都是基本类型,则运算符至少检查   一个是字符串并执行连接。在其他情况下它只是   将所有内容转换为数字和总和。

对于所有其他运营商: Do Read