JavaScript第三天学习总结
运算符
算术运算符
| 名称 | 符号 | 功能 |
|---|---|---|
| 加 | + | 求和 |
| 减 | - | 求差 |
| 乘 | * | 求积 |
| 除 | / | 求商 |
| 取余数 | % | 取模(取余)开发中经常作为某个数字是否被整除 |
赋值运算符
对变量进行赋值的运算符
- +=
- -=
- *=
- /=
- %=
num += 2; ===> num = num +2;
// 等号右边的值等于变量所运算的值
一元运算符
使用场景:经常用于计数来使用。
自增
单独使用前置自增和后置自增没区别
符号:++
作用:让变量的值+1
-
前置自增
- 每执行一次,当前变量数值加1
- 变量先增加1,再去计算后面的运算
let num = 1; // num++; ++num; ===> num +1 console.log(++num + 2); // 1.num先自增 ---->2 // 2.再去增加后面的运算 ---->2+2 = 4 -
后置自增
- 先计算运算
- 变量再自增
let num = 1; console.log(num++ + 2); // 1.num先加后面的数字 ---->1 + 2 = 3 // 2.num再自增 num---->1+1=2
自减
符号:--
作用:让变量-1
比较运算符
比较运算符的返回值就相当于布尔类型,只返回两种类型 true/flase
| 运算符 | 作用 |
|---|---|
| 左边是否大于右边 | |
| < | 左边是否小于右边 |
| >= | 左边是否大于或等于右边 |
| <= | 左边是否小于或等于右边 |
| == | 左右两边是否相等,将两边的数据进行转换为数值 |
| === | 左右两边是否类型和值都相等 |
| !== | 左右两边是否不全等 |
=、==、===的区别?
=号是赋值,==判断两边是否相等,只判断值不判断数值类型,===判断两边是否相等,同时判断两边数值类型是否一样。
拓展
- NaN不等于任何值,包括它本身
- 尽量不要比较小数,因为小数有精度问题
- 不同类型之间比较会发生隐式转换
- 最终把数据隐式转换转成number类型再比较
- 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
- 字符串比较,是比较的字符对应的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 循环语句
区别:表达式计算出一个值,但语句用来自行以使某件事发生(做什么事)
分支语句
if单分支
语法:
if(条件){
满足条件要执行的代码
}
// 括号内的条件为true时,进入大括号里执行代码
// 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
if双分支
语法:
if(条件){
满足条件要执行的代码
}else{
不满足条件要执行的代码
}
if多分支
语法:
if(条件1){
代码1
}else if(条件2){
代码2
}else if(条件3){
代码3
}else{
代码n
}
释义:
- 先判断条件1,若满足条件1就执行代码1,其他不执行
- 若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
- 若依然不满足继续往下判断,依次类推
- 若以上条件都不满足,执行else里的代码n
注:可以写N个条件,但这里演示只写2个
三元表达式
一般用来取值
语法:
条件?满足条件执行的代码 : 不满足条件执行的代码
let num1= 10;
let num2= 20;
num1 > num2 ? console.log(num1):console.log(num2);