美文网首页
JavaScript基础--算数运算符

JavaScript基础--算数运算符

作者: 绚丽多彩的白 | 来源:发表于2020-09-13 09:31 被阅读0次

    运算符基本概念

    • 和数学中的运算符一样, JavaScript中的运算符是告诉程序执行特定算术或逻辑操作的符号
    • 例如告诉程序, 某两个数相加, 相减,相乘等


    • 什么是表达式
      • 表达式就是利用运算符链接在一起的有意义,有结果的语句;
      • 例如: a + b; 就是一个算数表达式, 它的意义是将两个数相加, 两个数相加的结果就是表达式的结果
      • 注意: 表达式一定要有结果

    运算符分类

    • 按照功能划分:
      • 算术运算符
      • 位运算符
      • 关系运算符
      • 逻辑运算符
    • 运算符根据参与运算的操作数的个数分为
      • 单目运算
        • 单目运算:只有一个操作数 如 : i++ !
      • 双目运算
        • 双目运算:有两个操作数 如 : a+b;
      • 三目运算
        • 三目运算也称为问号表达式 a>b ? 1 : 0;

    运算符的优先级和结合性

    • 在小学的数学课本中,我们就学习过"从左往右,先乘除后加减,有括号的先算括号里面的", 这句话就蕴含了优先级和结合性的问题
    • 优先级
      • JavaScript中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。
      • 在表达式中,优先级较高的先于优先级较低的进行运算。
      • 在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理
    运算符 描述
    () 表达式分组
    ++ -- - ~ ! 一元运算符
    * / % 乘法、除法、取模
    + - + 加法、减法、字符串连接
    << >> >>> 移位
    < <= > >= 小于、小于等于、大于、大于等于
    == != === !== 等于、不等于、严格相等、非严格相等
    & 按位与
    ^ 按位异或
    | 按位或
    && 逻辑与
    || 逻辑或
    ?: 条件
    = += -= *= /= %= 赋值运算
    , 多重求值
    • 结合性
      • JavaScript中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。
        • 算术运算符的结合性是自左至右,即先左后右
        例如表达式: x - y + z;
        则y 应先与“-”号结合,执行 x-y 运算,然后再执行+z 的运算。
        这种自左至右的结合 方向就称为“左结合性”。
        
        • 而自右至左的结合方向称为“右结合性”。
          最典型的右结合 性运算符是赋值运算符
          例如:如x = y = z = 10;
          由于“=”的 右结合性,应先执行z = 10; 再执行y = z 再执行x = y运算。
        
    • 优先级
      • 先计算优先级高的
          var res = 2 + 3 * 8;
          先算3 * 8, 再加上 2
        
      • 优先级相同则左结合计算
        3*5/3*2
        先算3*5,然后再算除3,最后再乘以2
        

    算术运算符

    名称 符号 说明
    加法运算符 + 对两个值进行加法运算,并将结果返回
    减法运算符 - 对两个值进行减法运算,并将结果返回
    乘法运算符 * 对两个值进行乘法运算,并将结果返回
    除法运算符 / 对两个值进行除法运算,并将结果返回
    求余运算符 (模运算符) % 对两个值进行取余运算,并将结果返回
    • 加法运算
      • 格式: Number1 + Number2
        var res = 1 + 1;
        console.log(res); // 2
        
        var num1 = 10;
        var num2 = 20;
        var res2 = num1 + num2;
        console.log(res2); // 30
        
      • 非Number类型的值进行运算时,会将这些值转换为Number然后在运算
         var result = true + 1;
        console.log(result); // 2
        result = true + false;
        console.log(result); // 1
        result = 2 + null; 
        console.log(result);// 2
        
      • 任何值和NaN做运算都得NaN
        var result = 2 + NaN;
        console.log(result); //NaN
        
      • 任何的值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
        var result = 1 + "123";
        console.log(result); // 1123
        result = 2 + "true";
        console.log(result); // 2true
        
    • 减法运算
      • 格式: Number1 - Number2;
      • 非Number类型的值进行运算时,会将这些值转换为Number然后在运算
      • 任何值和NaN做运算都得NaN
      • 字符串做减法也会转换为Number
    • 乘法运算
      • 格式: Number1 * Number2;
      • 其它规律和减法一样
    • 除法运算
      • 格式: Number1 / Number2
      • 其它规律和减法一样
    • 取余运算
      • 格式: Number1 % Number2;
      • m%n 求余,相当于m/n 获取余数
      • 规律
        • n等于0 返回NaN
        • m等于0 结果为0
        • m>n 正常求余 如:8%3 = 2
        • m<n 结果是m 如:2%4 = 2
        • 其它规律和减法一样

    正负运算符

    • 正号
      • 正号不会对数字产生任何影响
      • 对于非Number类型的值,会将先转换为Number,然后再运算
    • 负号
      • 负号可以对数字进行负号的取反

    相关文章

      网友评论

          本文标题:JavaScript基础--算数运算符

          本文链接:https://www.haomeiwen.com/subject/zfhgektx.html