javascript知识点-(运算符)

186 阅读5分钟

1-运算符

01.赋值运算符

  • = 赋值运算符
  • 将右侧的数据赋值给左侧的变量
        let a = 10;
        let b = a + 100;
        b = b + 200;
        let c = 20;

注意: = 是没有比较的功能

02.算数运算符

  • % 求余运算符,求两个数相除的余数

console.log(5 % 3); // 2

主要用处是判断一个数是不是另一个数的整数倍,可以用于判断奇偶数,如果 x % 2 结果是0 表示是偶数

console.log(9 % 3); //0

  • 还有一个就是* 这个很简单

console.log(5 * 3); //15

  • ++ 自增
        let a = 20;
        a = a + 1;
        a++;         等效于 a = a + 1;
        console.log(a);
  • -- 自减
        let b = 10;
        b = b -1 ;
        b--;        // 等效于 b = b - 1
        console.log(b); 

小结:

  • % 余两个数相除的余数
  • ++ 自增1运算符
  • -- 自减1运算符

03.自增与自减

影响的是参与其他运算时

  • 前自增 ++n:先自增,再参与运算符(使用本次自增后的值参与运算)
  • 后自增 n++:先运算(使用本次未自增的值参与运算),本次运算结束后在自增。
        // ++
        // ++可以放在变量前,也可以放在变量后
        // ++i  前自增
        // i++  后自增

        // 无论前自增,还是后自增,对变量的值是没有影响的,都会加1

        let i = 10;
        ++i;
        console.log(i);     // 11

        let j = 10;
        j++;
        console.log(j);     // 11         
        // 影响的是参与其他运算时
        // 前自增:先自增,再参与运算(使用本次自增后的值参与运算)
        // 后自增:先运算(使用本次未自增的值参与运算),本次运算结束后再自增
         let i = 10;
         let ret1 = ++i;         // i = i+1      ret1= i;

         let j = 10;
         let ret2 =j++;         // ret2 = j;        j = j+1
         console.log(ret1,ret2);
         console.log(i,j);

前自增和后自增的应用

let a =10;
let ret1 =a++

let b =10;
let ret2 =++b (先运算,后自增所以运算时是10console.log =(ret1+ret2)    //21
let a =10   
//         10   12    12   14
let ret = a++ + ++a + a++ + ++a  // 48
console.log(ret);

04.字符串运算符

  • 字符串运算符,主要用于对象字符串进行拼接操作。
  • + 对两个字符串进行拼接成一个新的字符串
        let str1 = 'hello';
        let str2 = ' world';
         console.log(str1);      // 输出的就是'hello'
         console.log(str2);      // 输出的就是' world'

         let str3 = str1 + str2; // 
         console.log(str3);      // 输出的就是 'hello world'
  • += 将新字符串内容追加到后面
        let a = 'hello';
        //a = a + 'world'
        a += ' world';
        console.log(a); */

debugger; // 进行调试模式

  let str = '<table border="1" rules="all" width="500" height="500">';
            str += '<tr>';
            str += '<td></td>';
            str += '<td></td>';
            str += '<td></td>';
            str += '<td></td>';
            str += '<td></td>';
            str += '<td></td>';
            str += '</tr>';
            str += '</table>';
        // console.log(str);
        document.write(str)

得到如下一个表格: image.png

05.比较运算符

  • == 判断两个数据的值相同, 相同返回true,否则返回false
  • != 判断两个数据的值不相同,不相同返回true,否则返回false
let a = 10;
let b = 20;
let c = 10;
console.log(a == b);        false
console.log(a == c);        true
console.log(a != b);        true
console.log(a != c);        false

字串符也可以进行比较

console.log('hello' == 'hello');        true
console.log('hello' == 'world');        false
  • === 全等比较:比较两个数的值以及类型完全相同,相同的true,不相同的就是false
  • !== 不全等:比较两个数的值与类型至少有一方面不相同,有一个不相同的就是返回true,全相同就返还flase
console.log(12==='12');         false
console.log(12===11);           false

console.log(12!==11);           true
console.log(12!=='12');         true
console.log(13!==13);           false

全字符也可以进行比较,比较的是编码

console.log(3 > '20');        true

总结

  • == 判断值相等
  • != 判断值不相等
  • === 判断值 与 类型 完全相同
  • !== 判断值 与 类型 至少有一方面不相同
  • 关系运算符返回的结果都是布尔值

06.逻辑运算符

  • 逻辑运算符:用于对象多个条件进行逻辑判断,
  • && 逻辑与
  • || 逻辑或
  • ! 逻辑非

&& 逻辑与 口诀:找假 -- 并且

console.log(true && false);
console.log(false && true);
console.log(true && true);
console.log(false && false);
//          true        false
onsole.log(10 > 5 && 10 > 12);     // false

|| 逻辑或 口诀:找真 -- 或者

 console.log(true || false);         // true
console.log(false || true);         // true
console.log(true || true);          // true
console.log(false || false);        // false

逻辑运算符的短路

        // JS设计者设计的与逻辑&& ||的一种规则。
         let a = 10;
         let ret = false && ++a;
         console.log(a); 
        逻辑与短路:
            根据逻辑与的口诀,找假
            左侧为false,右侧主没有必再进行一次运算,所以右侧++a没有被计算,相当于被短路。
            
            
        let b = 10;
        let ret1 = true || ++b;
        console.log(b);
        逻辑或短路:
            根据逻辑或的口诀,找真
            左侧为true,右侧主没有必再进行一次运算,所以右侧++b没有被计算,相当于被短路。 
            
            
       // 小结:
            短路有两种:
            逻辑与:        false && 被短路
            逻辑或:        true || 被短路
        // 比较运算符 的结果是布尔 值
        // 逻辑运算符的结果是什么?哪一侧的数据能决定整个式子的结果就将哪个数据返回?
        let ret = 10 || 20;         // Boolean(10)      true
        console.log(ret);           // 10

         let ret1 = 10 && 20;       // Boolean(10)      true && 
        console.log(ret1);          // 20

        console.log('猫' || '狗');        //  猫
        console.log('猫' && '狗');        // 购

07.逻辑运算符应用

由用户输入一个整数,判断即是3的整数倍,又是5整数倍

let a = prompt('请输入一个数');  
if (a % 3 ==0 && a % 5 == 0){  //条件式
     alert (true);         //条件符合的话 就执行 true
} else{              //否者  执行下一步
 alert(false);   // false
}

由用户输入一个整数,判断其是4的整数倍,但不是100整数倍

08.运算符优先级

  /*逻辑非
    先乘除
    后加减
    再比较
    再逻辑(&&、||)
    最后赋值
    */
    // 可以使用 () 来提升运算符的优先级
    let ret = 10 * (20 + 10) > 300 && 200 < 100;