JavaScript第三天学习总结

164 阅读1分钟

JavaScript第三天学习总结

运算符

算术运算符

名称符号功能
+求和
-求差
*求积
/求商
取余数%取模(取余)开发中经常作为某个数字是否被整除

赋值运算符

对变量进行赋值的运算符

  1. +=
  2. -=
  3. *=
  4. /=
  5. %=
num += 2;   ===>  num = num +2;
// 等号右边的值等于变量所运算的值

一元运算符

使用场景:经常用于计数来使用。

自增

单独使用前置自增和后置自增没区别

符号:++

作用:让变量的值+1

  1. 前置自增

    1. 每执行一次,当前变量数值加1
    2. 变量先增加1,再去计算后面的运算
    let num = 1;
    //  num++;   ++num;    ===>  num +1
    console.log(++num + 2);
    // 1.num先自增 ---->2
    // 2.再去增加后面的运算  ---->2+2 = 4
    
  2. 后置自增

    1. 先计算运算
    2. 变量再自增
    let num = 1;
    console.log(num++ + 2);
    // 1.num先加后面的数字  ---->1 + 2 = 3
    // 2.num再自增 num---->1+1=2
    

自减

符号:--

作用:让变量-1

比较运算符

比较运算符的返回值就相当于布尔类型,只返回两种类型 true/flase

运算符作用
左边是否大于右边
<左边是否小于右边
>=左边是否大于或等于右边
<=左边是否小于或等于右边
==左右两边是否相等,将两边的数据进行转换为数值
===左右两边是否类型和值都相等
!==左右两边是否不全等

=、==、===的区别?

=号是赋值,==判断两边是否相等,只判断值不判断数值类型,===判断两边是否相等,同时判断两边数值类型是否一样。

拓展

  1. NaN不等于任何值,包括它本身
  2. 尽量不要比较小数,因为小数有精度问题
  3. 不同类型之间比较会发生隐式转换
    1. 最终把数据隐式转换转成number类型再比较
    2. 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
  4. 字符串比较,是比较的字符对应的ASCII码 那些值转成布尔类型后为flase?

undefined、null、0、""、false、NaN

逻辑运算符

符号名称日常读法特点口诀
&&逻辑与并且符号两边都为true结果才为true一假则假
||逻辑或或者符号两边有一个true就为true一真则真
!逻辑非取反true变false、false变true真变假,假变真

短路

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

 <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 rain = false;
        rain || console.log('去玩');
  
        // 两个短路运算  逻辑或 和 逻辑与 
        //   工作中的语法  逻辑与来说   满足了 就去执行
        //   工作中的语法  逻辑或来说   不满足了 就去执行
      </script>

运算符优先级

  • 一元运算符里面的逻辑非优先级最高***
  • 逻辑与比逻辑或优先级高
  • 优先级相同时以书从左向右执行
  • 使用 () 可以提升优先级
优先级运算符顺序
1小括号()
2一元运算符++ -- !
3算数运算符先*/%后+-
4关系运算符> >= < <=
5相等运算符== != === !=
6逻辑运算符先&&后||
7赋值运算符=
8逗号运算符,

语句

表达式和语句

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

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

1648380800153.png

分支语句

if单分支

语法:

if(条件){
            满足条件要执行的代码
        }
        // 括号内的条件为true时,进入大括号里执行代码
        // 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型

if双分支

语法:

if(条件){
            满足条件要执行的代码
}else{
    		不满足条件要执行的代码
}

if多分支

语法:

if(条件1){
            代码1
}else if(条件2){
    		代码2
}else if(条件3){
    		代码3
}else{
    		代码n
}

释义:

  1. 先判断条件1,若满足条件1就执行代码1,其他不执行
  2. 若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
  3. 若依然不满足继续往下判断,依次类推
  4. 若以上条件都不满足,执行else里的代码n

注:可以写N个条件,但这里演示只写2个

三元表达式

一般用来取值

语法:

条件?满足条件执行的代码 : 不满足条件执行的代码

let num1= 10;
let num2= 20;
num1 > num2 ? console.log(num1):console.log(num2);