JavaScript加号操作符
liang👍2020-05-15 21:35:080

JavaScript加号操作符

  1. 基本使用

  2. 连接字符串

    var result = "Hello, " + "World!"; //"Hello, World!"

  3. 数字加法运算

    var result = 10 + 5; console.log(result);// 15

  4. 操作符类型转换

  5. 如果操作符数中有一个为对象,对象将转换为原始值(stringnumberboolean)

    对象的转换规则

    1. 如果对象类型是一个Date,可以使用toString()方法
    2. 在其它情况下使用valueOf()方法,它将返回一个原始值
    3. 如果valueOf()方法不能将它返回一个原始值,可以使用toString()方法。而这种情况大部分情况下都会发生
  6. 如果操作符数中有一个为字符串,另一个将转换成字符串,并且连接在一起转换成一个字符串

  7. 在其它情况之下,两个操作数转换为数字并且将执行加法运算

    示例
  8. 数字和字符串
      var result = 1 + "5"; //"15"
    
    • 1 + "5":根据规则2,第二个操作数是一个字符串,那么数字1将会变成字符串"1"
    • "1" + "5": 字符串连接
    • "15"
  9. 数字和数组
      var result = [1,3,5] + 1; // "1,3,51"
    
    • [1,3,5] + 1: 根据规则一,数组[1,3,5]将原始值转换出来"1,3,5" (使用 toString 方法)
    • "1,3,5" + 1: 根据规则二,数字1将会转换成字符串"1"
    • "1,3,5" + "1": 字符串连接
    • 1,3,51
  10. 数字和布尔值
      var result = 10 + true; // 11
    
    • 10 + true: 根据规则三,布尔值true将转换为数字1
    • 10 + 1: 数字做加法运算
    • 11
  11. 数字和对象
      var result = 15 + {};//"15[object Object]
    
    • 15 + {}: 第二个操作数是一个对象,根据规则一和对象转换为字符串[object Object] (使用 toString 方法,第二个操作数是一个对象,它将转换为一个字符串。因为valueOf()方法返回的是对象本身,而不是一个原始值,使用toString()方法,它返回的是一个字符串。)
    • 15 + "[object Object]": 根据规则二,数字15转换为字符串"15"
    • "15" + "[object Object]": 字符串连接
    • "15[object Object]"
  12. 数字和null
      var result = 8 + null; //8
    
    • 8 + null: 因为操作数没有字符串,根据规则三,null将转换为数字0
    • 8 + 0: 两个数字做加法运算
    • 8
  13. 字符串和null
      var result = "queen" + null; // "queennull"
    
    • "queen" + null: 因为第一个操作数是一个字符串,根据规则二,null将转换为一个字符串"null"
    • "queen" + "null": 字符串连接
    • "queennull"
  14. 数字和undefined
      var result = 12 + undefined; // NaN
    
    • 12 + undefined: 因为没有任何一个操作数是字符串,根据规则三,undefined将转换为一个数字NaN

    • 12 + NaN: 做数字加法运算

    • NaN

      汇总
      console.log(1 + "5"); // "15"
      console.log([1, 3, 5] + 1); //"1,3,51"
      console.log(10 + true); //11
      console.log(15 + {}); //"15[object Object]"
      console.log(8 + null); // 8
      console.log("queen" + null); // "queennull"
      console.log({} + null); // "[object Object]null"
      console.log(12 + undefined); //NaN
      console.log("aaa" + undefined);//"aaaundefined"
      console.log([] + null); // "null"
      console.log([] + undefined); // "undefined"
      console.log([] + "aa"); // "aa"
    

参考链接

  1. JavaScript中加号操作符细节

更新时间:2022-04-18 15:43:34

文章分类:JavaScript

喜欢

暂时还没有评论 不如来抢个沙发