JS基础(三)

50 阅读6分钟

自增自减运算符

++       --

作用:将变量自增一或者自减一

语法: 变量 ++ ; ++ 变量

区别:

   如果 符号 在 变量/数据 前, 先运算自增或者自减, 然后参与周围程序运算

   如果 符号 在 变量/数据 后, 先参加周围程序运算, 然后自增或者自减

    var num = 1
    ++ 在前, 先运算
    console.log(++num)  // 2

    ++ 在后, 后运算
    console.log(num++)  // 1
    console.log(num)     // 2

逻辑运算符

   &&    逻辑与    逻辑且

       语法:    变量一/数据一  &&  变量二/数据二

           运行规则: 会判断符号左边的变量的值, 转换为布尔值后

          如果符号左边布尔值为 true, 那么运行符号右边的代码或者返回符号右边的代码

          如果符号左边布尔值为 false, 那么直接运行符号左边的代码或者返回符号左边的代码

   ||    逻辑或

       语法:    变量一/数据一  ||  变量二/数据二

           运行规则: 会判断符号左边的变量的值, 转换为布尔值后

          如果符号左边布尔值为 true, 那么运行符号右边的代码或者返回符号左边的代码

        和 逻辑或 将来在 分支语句中将常会使用  如果符号左边布尔值为 false, 那么直接运行符号左边的代码或者返回符号右边的代码

逻辑与 和 逻辑或 将来在 分支语句中经常会使用 作为 判断条件

  逻辑与: 满足条件1  并且  满足条件2

  逻辑或: 满足条件1  或者  满足条件2

 ! 逻辑非

  得到数据的取反后的布尔值

   !undefined    !true

     逻辑与 &&
      console.log(变量1/数据1 && 变量2/数据2)
      console.log(true && false)
      console.log(1 && 0)
      console.log(0 && 100)

      console.log('手动分割线=================')
     
      console.log(true && false)
     
       按照逻辑与的规则, 符号左边的布尔值为 true 那么运行符号右边的代码, 或者返回符号右边的代码
       
        所以相当于写了: console.log(false)
     

      console.log(0 && 100)
     
       按照逻辑与的规则, 符号左边的布尔值为 false 那么运行符号左边的代码, 或者返回符号左边的代码
      
        所以相当于写了: console.log(0)
     


      true && console.log('条件成立')
      false && console.log('你猜我会不会打印?')

逻辑或 ||
      console.log(true || false)
      console.log(1 || 0)
      console.log(0 || 100)

     console.log(1 || 0)
     
       按照逻辑或的规则, 符号左边的布尔值为 true 那么运行符号左边的代码, 或者返回符号左边的代码
      
       所以相当于写了: console.log(1)
     

     console.log(0 || 100)
     
       按照逻辑或的规则, 符号左边的布尔值为 false, 那么运行符号右边的代码, 或者返回符号右边的代码
      
       所以相当于写了: console.log(100)
     

     true || console.log('左边为 true 右边就不会执行了')
     false || console.log('左边为 false 右边才会执行')

分支语句

JS 在执行的时候, 是按照 从上到下的顺序执行的

所以我们书写的所有代码都会执行, 区别就是执行顺序的问题

但是上述的执行方案会有一个小问题,比如我想根据某一个条件决定是否执行一段代码

 一个代码案例:    在访问一个页面的时候,如果页面地址输入的没问题,并且网络也能正常访问页面

     那么此时一定可以正常访问页面

  如果上述的条件有一个不满,比如说地址输入错误,或者说网线被扒了

     那么此时页面就无法正常的访问了

   此时如果是前端JS处理,那么应该是这解决的      如果条件1和条件2都成立,那么展示一个正常的页面  否则,展示一个错误的页面(404页面)

   所以分支语句的一个核心就是给了我们 基于某一个条件决定执行某一段代码的能力

if语句

   语法1:  if(条件){ 如果条件成立,需要执行的代码 }

     条件为真 就会执行 大括号内 代码, 否则不执行

     条件可以直接书写布尔值,也可以书写一个表达式, 或者一个数字

     只要你书写的不是一个布尔值,那么会隐式转换为 一个布尔值

   语法2:

    if(条件){
        书写如果条件成立,需要执行的代码
    }else{
        当上边的条件不成立的时候,我会执行,我会执行,如果上边的条件成立了,我就不执行了
    }

   语法3(不推荐)

    if(条件1){
        如果条件1成立,那么我会执行,同时后续的所有 else if 或者 else 都不会执行了
    }else if(条件2){
        如果条件1不成立,但是条件2成立了,那么我会执行 , 同时后续的所有 else if 或者 else 都不会执行了
    }else if (条件3) {
        如果条件1和条件2都不成立, 但是条件3成立了, 那么我会执行 , 同时后续的所有 else if 或者 else 都不会执行了
    }.......

  语法4(语法3的一个升级补充):

    if(条件1){
        如果条件1成立,那么我会执行,同事后续的所有 else if 或者 else 都不会执行了
    }else if (条件2){
        如果条件1不成立,那么我会执行,那么我会执行,同时后续的所有的所有 else if 或者 else 都不会执行了
    } else if(条件3){
        如果条件1和条件2都不成立, 但是条件3成立了, 那么我会执行 , 同时后续的所有 else if 或者 else 都不会执行了
    }else {
     如果上述的所有条件都不成立, 那么我会执行, 否则就不执行
    }

课堂练习

1.用户输入一个数字,判断这个数字是不是偶数

   是:打印偶数

   不是:打印奇数

    var a = prompt() - 0
    if(a % 2 === 0 ){
        console.log(a,'是个偶数')
    }else{
        console.log(a,'是个奇数')
    }

2.用户输入两个数字,判断两个数字的较大值,并打印出来

    var a = prompt() - 0
    var b = prompt() - 0
    if(a > b){
          console.log(a)
      }else{
          console.log(a)
      }

3.用户输入一个年份,判断这个年份是不是闰年

   条件:

     四年一润,百年不润   四百年补一闰

    var year = prompt() - 0
    if(year % 4 === 0 && year % 100 === 0 || year % 400 === 0){
        console.log(year,'是个闰年')
    }else{
        console.log(year,'是个平年')
    }