运算符与表达式
- 运算符 : 负责运算的符号,单独使用毫无意义,必须与运算的数据在一起组成表达式。
- 表达式 : 由运算符参与的式子
算术运算符
-
作用 : 算术运算
+ - * / %(求模,余数)
-
注意 :
- 有些除法
/
有循环小数, JavaScript 中只保留15-17位 - 0 不可以做除数,任何数字除以 0 得到无穷大
- 有些除法
赋值运算符
赋值运算符左边一定是变量,因为只有变量才可以储存数据 =
- 作用 : 右边的数据存入左边的变量
- 语法 :
num = num + 15
// 简写
num += 15
// 其他简写 += -= *= /= %=
自增自减(自身+1 -1) 运算符
- 自增:
num++
相当于num += 1
也相当于num = num + 1
- 自减:
num--
同上
比较运算符(关系运算符)
- 作用 : 比较两数据之间的关系,判断某种条件是否成立
-
语法 :
>
、>=
、<
、<=
、==
(相等)、!=
(不等)、===
(全等)、!==
(不全等) ` -
=
==
===
三者的区别- =(赋值): 赋值运算符,右边的数据存入左边的变量
-
==(相等) : 比较运算符,只比较值不比较类型 例子:
'1' == 1 // true
-
===(全等) : 比较运算符,先比较类型再比较值 例子:
'1' == 1 // false
逻辑运算符
- 作用 : 计算多个条件关系
-
&&
逻辑与 : 并且 一假则假(全真为真) -
||
逻辑或 : 或者 一真则真(全假为假) -
!
逻辑非 : 取反 true 变 false , false 变 true 例子:!false === true
运算符优先级 不同运算符在式子里的运算顺序
小括号( )
优先级最高, 业务中遇到复杂的式子看需求使用小括号( )
提升优先级,赋值的优先级最低。
优先级顺序
() : 优先级最高
一元: ++ -- !
算术: 按照数学优先级
关系
逻辑
赋值
重点知识
- 运算符 : 负责运算的符号,单独使用无意义会报错,必须与运算的数据在一起组成表达式
- 只要是表达式一定有运算结果 要么打印 要么存入变量
- 比较表达式结果一定是布尔值 true成立 false不成立
流程控制语句
语句和表达式的区别
- 表达式 : 有运算符,一定有结果
- 语句 : 没有运算符,不一定有结果
1.顺序结构语句
整个程序默认的结构,代码从上往下执行
2.分支结构语句
作用 : 代码根据条件执行
if 语句 : 用于条件的判断
-
if
单分支语句 : 用于单个条件的判断- 语法 :
if(条件 true/false){ 条件成立执行的代码 }
-
注意点:
- 关系表达式 , 结果一定是布尔类型
- 布尔类型值
- 其他值: 会隐式转换成布尔类型来判断
-
if-else
双分支语句 : 用于两个互斥条件- 语法 :
if(条件) { 条件成立时执行的代码 }else{ 条件不成立时执行的代码 }
- 注意点 : if 大括号 和 else 大括号一定会执行一个,不会都执行,也不会都不执行
-
if-else if-else
多分支语句 : 用于多个条件- 语法 :
if(条件一){ 条件一成立时执行的代码 }else if(条件二){ 条件二成立时执行的代码 . . . }else if(条件n){ 条件n成立时执行的代码 }else{ 以上条件都不成立时执行的代码 }
-
注意点 :
- 所有的大括号只会执行一个
- 必须 if 开头 中间多个else if 结尾else可以省略 一般不省略
三元表达式:由三元运算符组成的式子
三元运算符 : ? :
-
语法 :
式子 ? 代码1 : 代码2
- 规则 : 如果式子为 true ,则执行 代码1,否则执行 代码2
- 三元表达式做的事情和if-else语句做的事情一样,代码更简洁
三元表达式和 if - else 语句的区别
- 三元表达式更简洁, 如果满足只需要用一行代码, 就用三元表达式
- 三元表达式由运算结果, 可以运算
- 如果三元表达式 代码1 和 代码2 有结果, 三元表达式的结果就是他们的值
- 如果 代码1 代码2 没有结果, 三元表达式结果为undefined
Switch-case
分支语句 用于固定值匹配
-
语法 :
switch(匹配值){ case 值1 : 匹配值===值1 需要执行的代码 break case 值2 : 匹配值===值2 需要执行的代码 break . . . case 值n : 匹配值===值n 需要执行的代码 break default : 以上都不匹配执行的代码 break }
-
注意点 :
- 匹配值与 case 后面的值, 一定要是全等(===)关系
- 最后的 default 可以省略,一般不省略
-
break
关键字 , 用于结束switch-case
语句, 如果不写会穿透到下一个break停止,执行中间所有的代码
-
switch-case 穿透显现的合理利用 , 省略 break
- 当多个匹配值需要执行相同的代码时,可以利用穿透现象
- 语法 :
switch(匹配值){ case 值1 : case 值2 : case 值3 : 匹配值===值1or值2or值3 需要执行的代码 break case 值4 : case 值5 : case 值6 : case 值7 : 匹配值===值5or值6or值7or值8 需要执行的代码 break case 值8 : . . . case 值n : 匹配值===值8...值n 需要执行的代码 break default : 以上都不匹配执行的代码 break }
-
注意点 :