运算符
算数运算符
-
+加;-减;/除;*乘;%取余;- 在运算符中尽量不要用浮点型计算会存在误差
- 浮点数的精度远远不如整数
- 不要去判断浮点数是否相等
-
表达式与返回值
- 是由数字、运算符、变量组成的组成的式子即为表达式
- 返回值就是表达式的结果
递增和递减运算符
- 前置递增运算符:写在变量之前,先自加,再进行其他运算
- 后置递增运算符:写在变量之后,先返回原值进行其他运算,再自加
- 在单独使用时效果相同
- 符号 :
++递增;--递减
比较运算符
- 概念
- 是两个数据进行比较是会使用的运算符;返回值为布尔类型(true\false)
==判等符号,读作:等于;会转换数据类型(隐式转换),只要求数值一致===判全等于符号,读作全等于或者严格等于;要求数值和数据类型完全一致
- 是两个数据进行比较是会使用的运算符;返回值为布尔类型(true\false)
逻辑运算符
-
逻辑运算符是用来进行布尔运算的运算符,返回值也是布尔值
- 逻辑与
&&两侧都为true,结果才为true - 逻辑或
||两侧都为false,结果才为false - 逻辑非
!
- 逻辑与
-
短路运算(逻辑中断)
-
短路运算的原理
-
逻辑与短路运算:第一个值转换为布尔值为true,返回值为第二个表达式;第一个值转换为布尔值为false,返回值为第一个值
-
逻辑或短路运算:第一个值转换为布尔值为true,返回值为第一个表达式;第一个值转换为布尔值为false,返回值为第二个值
-
var num = 0; console.log (num || num++); console.log (num); var num = 0; console.log (123 || num++); // 逻辑中断之后,之后的程序就不再执行 console.log (num); // output : 123 // output : 0
-
-
-
赋值运算符
=直接赋值+=加一个数值再赋值;-=减一个值再赋值*=乘上一个值再赋值;/=除以一个值再赋值;%=取模之后再赋值
JavaScript流程控制-分支
流程控制
- 控制代码以某种流程顺序来执行
- 主要有顺序结构,分支结构、循环结构
顺序流程控制
- 程序会按照代码的先后顺序来执行,之前学习的内容否是按照顺序流程控制来执行的。
分支流程控制if语句
-
分支结构:根据不同的条件,执行不同的路径代码。
-
if语句
-
if (条件表达式) { //条件表达式为真执行语句 }
-
-
if、else语句(双分支语句)
-
if (条件表达式) { // 如果表达式为真 , 执行语句 } else { // 如果表达式为假,执行语句 } // 最终只有一个语句能被执行
-
-
if、else if语句(多分支语句)
-
if (条件表达式1) { // 如果条件表达式1为真,执行语句 } else if (条件表达式2) { // 如果条件表达式2为真,执行语句 } else if (条件表达式3) { // 如果条件表达式3为真,执行语句 } //.... else { // 如果上述表达式都不成立,执行语句 }
-
三元表达式
条件表达式?语句1:语句2- 条件表达式为真,则输出语句1;如果条件表达式为假,则输出语句2
分支流程控制switch
- 语法结构
switch (表达式) {
case value1:
// 执行语句1
break;
case value2:
// 执行语句2
break;
case value3:
// 执行语句3
break;
//...
default:
// 最后执行的语句
}
// 如果需要使用 switch 进行判断 那么可以这样写
switch (true) {
case (// 表达式1)
// 满足表达式1 执行的代码块
break;
case (// 表达式2)
// 满足表达式2 执行的代码块
break;
default :
// 不满足上述表达式 , 执行的代码
}
-
注意事项
- 我们在表达式中时常是写的变量
- 表达式的值和value的值必须是全等的,否则是无法匹配的
- 如果当前的case的内部没有break,则不会退出switch,而是执行下一个case,无论是否匹配
-
switch、case语句与if、else if 语句的区别
- 一般情况下可以互相替换
- switch、case语句适合判断case比较确定的情况下,if、else if语句适合用于判断范围的值