zoukankan      html  css  js  c++  java
  • JS-详解算数运算符"+"

       二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作:

      当两个操作数都是数字或都是字符串的时候,计算结果是显而易见的。然而对于其他情况来说,则要进行一些必要的类型转换,并且运算符的行为依赖于类型转换的结果。加号的转换规则优先考虑字符串连接,如果其中一个操作数是字符串或者转换为字符串的对象,另外一个操作数将会转换为字符串,加法将进行字符串的连接操作。如果两个操作数都不是类字符串(string-like)的,那么都将进行算术加法运算。 从技术上讲,加法操作符的行为表现为: ·如果其中一个操作数是对象,则对象会遵循对象到原始值的转换规则转换为原始类值,在进行了对象到原始值的转换后,如果其中一个操作数是字符串的话,另一个操作数也会转换为字符串,然后进行字符串连接。 ·否则,两个操作数都将转换为数字(或者NaN),然后进行加法操作。

      这里有一些例子:

    1 + 2 // => 3: 加法
    
    "1" + "2" // => "12": 字符串连接
    
    "1" + 2 // => "12": 数字转换为字符串后进行字符串连接
    
    1 + {} // => "1[object Object]": 对象转换为字符串后进行字符串连接
    
    true + true // => 2: 布尔值转换为数字后做加法
    
    2 + null // => 2: null转换为0后做加法
    
    2 + undefined// => NaN: undefined转换为NaN后做加法

      最后,需要特别注意的是,当加号运算符和字符串和数字一起使用时,需要考虑加法的结合性的对运算顺序的影响。也就是说,运算结果是依赖于运算符的运算顺序的,比如: 

    1 + 2 + " blind mice"; // => "3 blind mice"
    
    1 +(2 + " blind mice"); // => "12 blind mice"

      第一行没有圆括号,“+”运算符具有从左至右的结合性,因此两个数字首先进行加法计算,计算结果和字符串进行连接。在第二行中,圆括号改变了运算顺序:数字2和字符串连接,生成一个新字符串,然后数字1和这个新字符串再次连接,生成了最终结果。

  • 相关阅读:
    HYSBZ 3813 奇数国
    HYSBZ 4419 发微博
    HYSBZ 1079 着色方案
    HYSBZ 3506 排序机械臂
    HYSBZ 3224 Tyvj 1728 普通平衡树
    Unity 3D,地形属性
    nginx 的naginx 种包含include关键字
    Redis 出现NOAUTH Authentication required解决方案
    mysql 8.0出现 Public Key Retrieval is not allowed
    修改jar包里的源码时候需要注意的问题
  • 原文地址:https://www.cnblogs.com/superlizhao/p/8439541.html
Copyright © 2011-2022 走看看