javascript中的运算符

615 阅读2分钟

Javascript运算符

1.算术运算符

数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。

1.+:求和

2.-:求差

3.*:求积

4./:求商

5.%:取模(取余数开发中经常作为某个数字是否被整除

6.JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。

7.乘、除、取余优先级相同

8.加、减优先级相同

9.乘、除、取余优先级大于加、减

10使用 () 可以提升优先级

11.总结: 先乘除后加减,有括号先算括号里面的~~~

  <script>

        let num1 = 10 ;
        let num2 = 20;

        //加法运算
        console.log(num1 + num2 ); //30

        //减法运算 
        console.log(num2 - num1 ); //10

        //乘法运算
        console.log(num1 * num2); //200

        //除法运算
        console.log(num2 / num1 ); //2
    
        //取余
        console.log( 20 % 3 ); //取余常用判断整数是否被整除
 

        //如果运算中存在括号,那么先算括号再到乘除 然后加减

        console.log((20 + 10) * 2 - 8); //52

    </script>

2.赋值运算符

对变量进行赋值的运算符,赋值运算符,是将右边的值赋予给左边,常见的赋值运算符有

1.+=

2.-=

3.*=

4./=

5.%=


    <script>

        //赋值运算符 是将右边的值赋予给左边
        //常见的赋值运算符有 =
 
        let num = 100;
        //假如我们想要num变量加1  之前的做法是
        num = num + 1 ;

        console.log(num); //101
        //现在我们可以用赋值运算符来简化
        num += 1;
        console.log(num); //102
        //除此之外还可以-=  *=  /=  %= 用法和 += 类似
        console.log(num /= 2);  //51

        console.log(num *= 2); 

        
    </script>

3.一元运算符

JavaScript 的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符,一元运算符有正负号

 <script>

        let num = 1;
        //之前我们要变量num 加1  可以用 num += 1  现在有一元运算符更加简化
        //第一种前置递增
        ++num
        console.log(num); // 2

        //第二种 后置递增
        num++
        console.log(num); //2

        //如果两者单独使用没什么区别 ,但是参加运算时会有先后顺序

        let num2 = 1
        console.log(++num2 + 1); //3  num先自身加1  再参加运算
        console.log(num2); //2

        let num3 = 1 ;

        console.log(num3++ +  1); //2  num先运算完  再自身加一
        console.log(num3);  //2

    </script>   

4.比较运算符

主要是比较两个变量的大小,相等

1.> 大于 左边是否大于右边数据

2.<小于 左边是否小于右边数据

3.>= 左边是否大于或者等于右边

4.<= 左边是否小于或者等于右边

5.== 左右两边是否相等 将两边数据转换数值再比较

6.===左右两边的数据是否数值 类型都相等

7.!=左右两边是否不相等

8.!==左右两边是否不相等 包括数据类型

9.比较结果为Boolean,即只会得到true 和false

 <script>
      //  比较后的结果 其实是一个 bool 类型 true , false
      console.log(3 > 10); // 打印什么结果 false
      console.log(3 > 1); //  true
      console.log(3 < 10); //  true
      console.log(3 < 3); // false
      console.log(3 <= 3); // 小于或者等于 3 true

      // 判断是否相等 要用 两个 "=="  号
      console.log(3 == 2); // false

      // let num = 4;
      // num = 5; // 只写一个= 代表赋值
      // console.log(num == 5); // 两个等于号才是判断 不包括数据类型

      // 判断 3 不等于 5
      // console.log(3!=5); // !=  不等于 true

      // 拿数字和字符串比较
      console.log(3 == '3'); // true  因为两个 == 只会判断值 而不会判断类型

      console.log(3 === '3'); //  flase  3个等于号  既要判断类型 也要判断值
      console.log(3 === 3); // true
      console.log(3 != 3); // false
      console.log(3 != '3'); // false
      console.log(3 !== '3'); // true

      //  比较 一般都是对数字做比较
      //  对于字符串做比较 更多是判断两者是否相等
      // console.log('A' === 'B');
      // 如果拿字符串去 大小的比较,判断的标准是
      // 先把字符串 拿去做 转数字
      // 转完了数字之后, 才根据数字做大小比较!

      console.log('A' > 'B'); // 65 > 66

      // NaN = A   ||    NaN = B
      console.log(NaN === NaN); // false 不能以为 两者代码一样就相等 (不是一个数字    )

      // 运算符处理小数 有问题 度的问题!!
      console.log(0.4 + 0.2 === 0.6); false

      // 类型转换
      // console.log(4 > '3');
      console.log(4 > Number('3'));
    </script>

5.逻辑运算符

1648387313586.png

    <script>
        //假如有个数据要大于5  并且要小于10

        let num = 6 ;
        console.log(num > 5 && num < 10);  //true  一假则假


        //假如我有个钱包 里面有10元 或者 有 3 元 就去买东西
        let num2 = 3 ;
        console.log(num2 == 4 || num2 == 3); //true  一真则真

        //逻辑运算符  !  取反
        let age =true; 
        console.log(!age); //false

    </script>

6.短路运算符

短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行

原因:通过左边能得到整个式子的结果,因此没必要再判断右边

运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值

1648387828180.png

  <script>
     // 一假则假  && 左边为false 右边就不再去执行
      console.log(2 > 10 && 1 < 3 && 3 > 1 && 9 > 5 && 5 < 10 && 8 > 2);

      // 常见的写法
      // 如果今天下雨 那我就去吃大餐
      //   不下雨 不去吃海鲜了
      let rain = false;

      // 左边成立了 右边才会去执行
      rain && console.log('下雨 去吃海鲜');

      // 逻辑或 一真则真
      // 只要 || 左边 成立了为true,右边就不再去执行
      console.log(100 > 3 || 2 > 6 || 9 > 10 || 10 > 11 || 13 > 20);

      // 常用的技巧
      // 如果下雨,那么我就不出去
      let rain1 = false;
      rain1 || console.log('不出去');

      // 两个短路运算  逻辑或 和 逻辑与 
      //    逻辑与来说   满足了 就去执行
      //    逻辑或来说   不满足了 就去执行

        // 逻辑运算的最终结果

      // let result = 1 > 0 && 7 > 10; // false
      // 那段代码是最后执行即可
      // let result = 10 > 0 && 30;
      // let result = 20 > 0 && false && 30;
        console.log(result);  //false


      //  undefined   转换成 布尔类型 是个false
      // 以下的值转成 布尔类型后 false 
      // undefined null 0 空字符串 false  NaN 
      console.log( Boolean(undefined) ); //false
      console.log( Boolean(null) ); //false
      console.log( Boolean(0) ); //false
      console.log( Boolean("") ); //false
      console.log( Boolean(false) ); //false
      console.log( Boolean(NaN) ); //false
      console.log( Boolean('') ); //false

    </script>

Javascript表达式和语句

1.表达式

表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果

  <script>

    
        num = 7
       num ++

    </script>

2.语句

js 整句或命令,js 语句是以分号结束(可以省略)比如: if语句 for 循环语句

区别:表达式计算出一个值,但语句用来自行以使某件事发生(做什么事)

 <script>

        alert('你好啊')
        
        

    </script>
</body>

3.程序三大流程控制语句

1.顺序结构语句

上往下执行语句,这种叫顺序结构

1648388210300.png

2.分支结构语句

根据条件选择执行代码,这种就叫分支结构

1648388241020.png

3.循环结构语句

​ 段代码被重复执行,就叫循环结构

1648388274403.png

4.分支语句

1.if单分支语句

语法

if (条件表达式) {

​ 执行表达式(条件表达式为true执行)

}

   //获取用户信息
        let num =  +prompt('请输入你的分数')

        //条件表达式  成立就执行 否则不执行
        if (num > 700 ) {

            alert('恭喜你分数700')

        }
 
    </script>

2.if 双分支语句

语法

if (条件表达式) {

​ 执行表达式(条件表达式为true执行)

} else {

​ 执行表达式2(条件表达式为false执行)

}

  <script>

        let num = +prompt('请输入你的分数')

        if (num > 700 ) {

            alert('恭喜你分数大于700')

        }  else {
            alert('恭喜你分数低于700')
        }
    </script>

3.多分支语句

语法

if (条件表达式) {

​ 执行表达式(条件表达式为true执行)

} else if (条件表达式2){

​ 执行表达式2(条件表达式2为true执行)

} else {

执行表达式3( 所有条件表达式为false时执行)

}

 <script>
       let num = +prompt('请输入星期数')

       if ( num == 1) {

        alert('吃煲仔饭 ')

       } else if (num == 2) {
        alert('吃白饭 ')

       }  else if (num == 3) {
        alert('吃汉堡 ')

        }  else if (num == 4) {
            alert('吃鱼 ')

        }   else if (num == 5) {
            alert('吃虾 ')

         }   else if (num == 6) {
            alert('吃鸡')

            } else {
                alert('没得吃')
            }
   </script>

4.用分支语句制作简单计算器


    <script>
		
        let num = +prompt('请输入第一个数字');
        let num1 = +prompt('请输入第二个数字');

        let ufunc = prompt('请输入+ / * - 任何一个');

        if  (ufunc == '+'){
            sum = num + num1 
        } else if  (ufunc == '-' ) {
            sum = num - num1 
        } else if  (ufunc == '/' ) {
            sum = num / num1 
        }   else  {
            sum = num * num1
        }

        // sum =  num ufunc num1;

        alert(`计算结果为${sum}`);

        

    </script>
</body>

5.三元表达式

if 双分支 更简单的写法,有时候也叫做三元表达式, 符号:? 与 : 配合使用

语法结构 条件表达式? 执行语句1 (true执行):执行语句2(false执行)

  <script>

      // 三元表达式
      // num1 > num2 ? console.log(num1) : console.log(num2);

      let num1 = 10;
      let num2 = 99;

      let num3; // 就要等于 num1 和 num2 中 大的值

      num3 = ( (num1 > num2) ? num1 : num2);  //常用于一个数值

      console.log(num3);
    </script>
</body>