前端Javascript第二天知识点:运算符

1. 运算符

运算符(operator)也被称为操作符,是用于实现赋值、比较和执行算数运算等功能的符号。

JavaScript中常用的运算符有:

  • 算数运算符
  • 递增和递减运算符
  • 比较运算符
  • 逻辑运算符  赋值运算符

2. 算数运算符

2.1 算术运算符概述

概念:算术运算使用的符号,用于执行两个变量或值的算术运算。
前端Javascript第二天知识点:运算符_第1张图片

2.2 浮点数的精度问题

浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。
前端Javascript第二天知识点:运算符_第2张图片

    <script>
        console.log(1 + 1); // 2
        console.log(1 - 1); // 0
        console.log(1 * 1); // 1
        console.log(1 / 1); // 1
        // 1. % 取余 (取模)  
        console.log(4 % 2); // 0
        console.log(5 % 3); // 2
        console.log(3 % 5); // 3
        // 2. 浮点数 算数运算里面会有问题
        console.log(0.1 + 0.2); // 0.30000000000000004
        console.log(0.07 * 100); // 7.000000000000001
        // 3. 我们不能直接拿着浮点数来进行相比较 是否相等
        var num = 0.1 + 0.2;
        console.log(num == 0.3); // false
    </script>

2.3 课堂提问

1. 我们怎么判断 一个数能够被整除呢?
它的余数是0 就说明这个数能被整除, 这就是 % 取余运算符的主要用途

2. 请问 1 + 2 * 3 结果是?
结果是7 ,注意算术运算符优先级的,先乘除,后加减,有小括号先算小括号里面的

2.4 表达式和返回值

表达式:是由数字、运算符、变量等以能求得数值的有意义排列方法所得的组合

简单理解:是由数字、运算符、变量等组成的式子

表达式最终都会有一个结果,返回给我们,我们成为返回值

    <script>
        //  是由数字、运算符、变量等组成的式子 我们成为表达式   1 + 1 
        console.log(1 + 1); // 2 就是返回值
        // 1 + 1 = 2
        // 在我们程序里面  2 = 1 + 1   把我们的右边表达式计算完毕把返回值给左边
        var num = 1 + 1;
    </script>

3. 递增和递减运算符

3.1 递增和递减运算符概述

前端Javascript第二天知识点:运算符_第3张图片

3.2 递增运算符

1. 前置递增运算符

在这里插入图片描述

var num = 10;
alert(++num + 10); // 21

<script>
    // 1. 想要一个变量自己加1   num = num + 1 比较麻烦
    var num = 1;
    num = num + 1; // ++num
    num = num + 1;
    console.log(num); // 3
    // 2. 前置递增运算符  ++ 写在变量的前面
    var age = 10;
    ++age; // 类似于 age = age + 1
    console.log(age);
    // 3. 先加1  后返回值
    var p = 10;
    console.log(++p + 10);
</script>
2. 后置递增运算符

在这里插入图片描述

    <script>
        var num = 10;
        num++; // num = num + 1    ++num;
        console.log(num);
        // 1. 前置自增和后置自增如果单独使用 效果是一样的
        // 2. 后置自增 口诀:先返回原值 后自加1 
        var age = 10;
        console.log(age++ + 10);  // 值为 20
        console.log(age);  // 11
    </script>

练习

var a = 10;
++a;  // ++a = 11   a = 11 
var b = ++a + 2;  //++a = 12
console.log(b);  // 值为 14

var c = 10;
c++; //c++ = 11  c = 11
var d = c++ + 2;  // c++ = 11  c = 12
console.log(d);  // 值为 13

var e = 10;
var f = e++ + ++e;  //1. e++ = 10  e = 11  2. ++e = 12 e = 12
console.log(f);  //值为 22

3.3 前置递增和后置递增小结

  • 前置递增和后置递增运算符可以简化代码的编写,让变量的值 + 1 比以前写法更简单
  • 单独使用时,运行结果相同
  • 与其他代码联用时,执行结果会不同
  • 后置:先原值运算,后自加(先人后己)
  • 前置:先自加,后运算(先已后人)
  • 开发时,大多使用后置递增/减,并且代码独占一行,例如:num++; 或者 num–;

4. 比较运算符

4.1 比较运算符概述

前端Javascript第二天知识点:运算符_第4张图片

    <script>
        console.log(3 >= 5); // false
        console.log(2 <= 4); // true
        //1. 我们程序里面的等于符号 是 ==  默认转换数据类型 会把字符串型的数据转换为数字型 只要求值相等就可以
        console.log(3 == 5); // false
        console.log('pink老师' == '刘德华'); // flase
        console.log(18 == 18); // true
        console.log(18 == '18'); // true
        console.log(18 != 18); // false
        // 2. 我们程序里面有全等 一模一样  要求 两侧的值 还有 数据类型完全一致才可以 true
        console.log(18 === 18);
        console.log(18 === '18'); // false
    </script>

4.2 =小结

前端Javascript第二天知识点:运算符_第5张图片

5. 逻辑运算符

5.1 逻辑运算符概述

概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断
前端Javascript第二天知识点:运算符_第6张图片

    <script>
        // 1. 逻辑与 &&  and 两侧都为true  结果才是 true  只要有一侧为false  结果就为false 
        console.log(3 > 5 && 3 > 2); // false
        console.log(3 < 5 && 3 > 2); // true
        // 2. 逻辑或 || or  两侧都为false  结果才是假 false  只要有一侧为true  结果就是true
        console.log(3 > 5 || 3 > 2); // true 
        console.log(3 > 5 || 3 < 2); // false
        // 3. 逻辑非  not  ! 
        console.log(!true); // false
    </script>

5.2 逻辑与&&

前端Javascript第二天知识点:运算符_第7张图片

5.3 逻辑或 ||

前端Javascript第二天知识点:运算符_第8张图片

5.4 逻辑非 !

逻辑非(!)也叫作取反符,用来取一个布尔值相反的值,如 true 的相反值是 false

var isOk = !true;
console.log(isOk); // false

练习

    <script>
        var num = 7;
        var str = "我爱你~中国~";

        console.log(num > 5 && str.length >= num); // true

        console.log(num < 5 && str.length >= num); // false

        console.log(!(num < 10)); // false

        console.log(!(num < 10 || str.length == num)); // false
    </script>

5.5 短路运算(逻辑中断)

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

1. 逻辑与
  • 语法: 表达式1 && 表达式2
  • 如果第一个表达式的值为真,则返回表达式2
  • 如果第一个表达式的值为假,则返回表达式1
console.log( 123 && 456 ); // 456
console.log( 0 && 456 ); // 0
console.log( 123 && 456&& 789 ); // 789
2. 逻辑或
  • 语法: 表达式1 || 表达式2
  • 如果第一个表达式的值为真,则返回表达式1
  • 如果第一个表达式的值为假,则返回表达式2
console.log( 123 || 456 ); // 123
console.log( 0 || 456 ); // 456
console.log( 123 || 456 || 789 ); // 123
    <script>
        // 1. 用我们的布尔值参与的逻辑运算  true && false  == false 
        // 2. 123 && 456  是值 或者是 表达式 参与逻辑运算? 
        // 3. 逻辑与短路运算  如果表达式1 结果为真 则返回表达式2  如果表达式1为假 那么返回表达式1
        console.log(123 && 456); // 456
        console.log(0 && 456); //  0
        console.log(0 && 1 + 2 && 456 * 56789); // 0
        console.log('' && 1 + 2 && 456 * 56789); // ''
        // 如果有空的或者否定的为假 其余是真的  0  ''  null undefined  NaN
        // 4. 逻辑或短路运算  如果表达式1 结果为真 则返回的是表达式1 如果表达式1 结果为假 则返回表达式2
        console.log(123 || 456); // 123
        console.log(123 || 456 || 456 + 123); // 123
        console.log(0 || 456 || 456 + 123); // 456
        // 逻辑中断很重要 它会影响我们程序运行结果思密达
        var num = 0;
        console.log(123 || num++);
        console.log(num); // 0
    </script>

6. 赋值运算符

前端Javascript第二天知识点:运算符_第9张图片

    <script>
        var num = 10;
        // num = num + 1;   num++
        // num = num + 2; // num += 2;
        // num += 2;
        num += 5;
        console.log(num);
        var age = 2;
        age *= 3;
        console.log(age);
    </script>

7. 运算符优先级

前端Javascript第二天知识点:运算符_第10张图片

练习 1

console.log( 4 >= 6 || '人' != '阿凡达' && !(12 * 2 == 144) && true)  // true

var num = 10;
console.log( 5 == num / 2 && (2 + 2 * num).toString() ===22)//true

练习 2

var a = 3 > 5 && 2 < 7 && 3 == 4; 
console.log(a);   // false

var b = 3 <= 4 || 3 > 1 || 3 != 2; 
console.log(b);   // true

var c = 2 === "2"; 
console.log(c);   // false

var d = !c || b && a ;
console.log(d);  // true

你可能感兴趣的:(javascript)