JavaScript(三):运算符

一、算术运算符

请添加图片描述

浮点数的精度问题

浮点数值的最高精度为17位小数,但在进行算术计算时其精度远不如整数

例如:

var a = 0.1+ 0.2;//结果不是0.3,而是0.30000000000000004
console.log(0.07*100);//结果不是7,而是7.00000000000000001

因此:两个浮点数不能直接进行判断是否相等

二、递增和递减运算符

  • 如果需要反复给数字变量添加或减去1,可以使用递增(++)或递减(–)运算符来完成。
  • 在JavaScript中,递增和递减既可以放在变量之前,也可以放在变量后面。放在前面称之为前置递增(递减)运算符,放在变量后面,称为后置递增(递减)运算符。
  • 递增和递减运算符必须和变量配合使用

前置递增和后置递增的区别

  • 前置递增和后置递增运算符可以简化,让变量的值+1
  • 单独使用时,运行结果是一样的
  • 与其他代码连用时,执行结果不同
  • 后置:先原值运算,后自加1
  • 前置:先自加1,返回的加1的结果进行运算
    var num = 1;
        ++num;//相当于num = num + 1
        console.log(num);//结果为2


        var num2 = 2;
        num2++;//前置和后置单独使用,效果是一样的
        console.log(num2);//结果为3

        var num3 = 0, num4 = 0;
        console.log(++num3 + 10);//结果为11,前置++,变量先自加1,在返回结果
        console.log(num4++ + 10);//结果为10,后置++先返回原值,变量在自加1
        console.log(num3);//结果为1
        console.log(num4);//结果为1


        var a = 10;
        var f = a++ + ++a;
        console.log(f);//结果为22
     

首先第一步a++此时取值10作为返回值,任何a自加1,此时a的值为11,其次++a,先自加1,在返回结果作为运算,即12,因此结果为10+12=22

三、比较运算符

比较运算符是两个数据进行比较时使用的运算符,比较运算后,会返回一个布尔值(true/false)作为比较运算的结果。
请添加图片描述

console.log(18 == 18)//true
console.log(18 == '18')//true
console.log(18 === 18)//true
console.log(18 === '18')//false

编写程序时,==默认会转换数据类型,会把字符串型转换为数字型。因此第二个为true。

===要求数据两侧的值和数据类型全部一样才能相等

请添加图片描述

四、逻辑运算符

逻辑运算符是用来进行布尔值运算的运算符,其返回值为布尔值,后面开发中坚持用于多个条件的判断。请添加图片描述

短路运算

短路运算:当有多个表达式(值),左边的表达式值可以确定结果时,就不再继续运算右边的表达式。

1.逻辑与

  • 语法:表达式1 && 表达式2
  • 如果第一个表达式的值为真,则返回表达式2。
  • 如果第一个表达式的值为假,则返回表达式1。
  • 数字0 空字符串 null underfined NaN 为假,其余都为真
//逻辑与短路运算 如果表达式1为真,则返回表达式2,否则返回表达式1
console.log(10 && 20);//返回20
console.log(0 && 10);//返回0

console.log(10 && 30 && 20 && 50);//结果为50,多个与进行运算,一个一个进行比较 先比较10 && 30,返回30 然后在进行30 && 20比较。一次类推
console.log(10 && 30 && 0 && 50);//结果为0

2.逻辑或

  • 语法:表达式1 || 表达式2
  • 如果第一个表达式的值为真,则返回表达式1。
  • 如果第一个表达式的值为假,则返回表达式2。
var num = 0;
console.log(10 || num++);//结果为10
console.log(num);//结果还是0,因为逻辑或左边10为真,右边不在进行运算,因此num++不会被执行

逻辑中断很重要,它会影响我们程序运行结果

五、运算符的优先级

请添加图片描述

猜你喜欢

转载自blog.csdn.net/weixin_53912712/article/details/128300155