-
算术运算符 + - * / %
2.2 浮点数的精确度最高是17位小数,但在进行运算时精确度远远不如整数
不要直接判断两个浮点数是否相等!
2.3 一个数被另一个数整除的话余数为0,这就是%取余运算符的主要用途
算术运算符优先级,先乘除,后加减,有小括号先算小括号里面的
2.4 表达式最终都会有一个结果,返回给我们,我们称为返回值 -
递增和递减运算符
3.1 递增++ 后置递增运算符 先自加,后返回值 先人后己
++递增 前置递增运算符 先返回值,后自加 先己后人
开发时,大多使用后置递增/减,且代码独占一行,列如:num++;或者num–; -
比较运算符
4.1 概述
两个数据进行比较时使用的运算符,比较运算后,会返回一个布尔值(true/false)作为比较运算的结果
< > >= <= ==判断号(会转型) != ===全等,值和数据类型都一致 !==全不等,值和数据类型都一致
4.2 =小结
符号 作用 用法
= 赋值 把右边给左边
== 判断 判断两边值是否相等(注意此时有隐式转换)
=== 全等 判断两边的值和数据类型是否完全相同
console.log(18 == ‘18’);
console.log(18 === ‘18’); -
逻辑运算符
&& 与 and
|| 或 or
! 非 not
5.4 短路运算(逻辑中断)
原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式值
1. 逻辑与
语法:表达式1 && 表达式2
如果第一个表达式值为真,则返回表达式2
如果第一个表达式值为假,则返回表达式1
2. 逻辑或
语法:表达式1 || 表达式2
如果第一个表达式值为真,则返回表达式1
如果第一个表达式值为假,则返回表达式2
-
赋值运算符
把数值赋值给变量的运算符
赋值运算符 说明 案例
= 直接赋值 var usrName=‘我是指’;
+=,-= 加,减,一个数后在赋值 var age=10; gae+=5; // 15
=,/=,%= 乘,除,取模后在赋值 var age=2; age=5; // 10 -
运算符优先级
优先级 运算符 顺序
1 小括号 ()
2 一元运算符 ++ == !
3 算术运算符 先 * / % 后 + -
4 关系运算符 > >= < <=
5 相等运算符 == != === !==
6 逻辑运算符 先 && 后 ||
7 赋值运算符 =
8 逗号运算符 ,
一元运算符里面的逻辑非优先级很高
逻辑与比逻辑或优先级高 -
流程控制
顺序结构,分支结构,循环结构
3.1 分支结构
3.2 if语句
案例:判断是否为闰年
var year = prompt(‘请您输入年份:’);
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
alert(‘您输入的年份是闰年’);
} else {
alert(‘您输入的年份是平年’);
}
-
三元表达式
-
语法:表达式1 ? 表达式2 : 表达式3;
-
如果表达式1为true,则返回表达式2的值,如果表达式1为false,则返回表达式3的值
类似于 if else(双分支)的简写 -
分支流程控制switch语句
switch (表达式) {
case value1:
执行语句1;
break;
case value2:
执行语句2;
break;
…
default:
执行最后的语句;
}
5.1 语法结构
switch:开关 转换 , case:小例子 选项
关键字switch后面括号内可以是表达式或值,通常是一个变量
关键字case,后跟一个选项的表达式或值,后面跟一个冒号
switch表达式的值会跟结构中的case的值作比较
如果存在匹配全等(===),则与该case关联的代码块会被执行,并在遇到break时停止,整个switch语句代码执行结束
如果所有case的值都和表达式的值不匹配,则执行default里的代码
注意:执行case里面的语句时,如果没有break,则继续执行下一个case里面的语句
5.2 switch和if else if语句的区别
一般情况下,两个语句可以互换
switch…case语句通常处理擦色为比较确定值的情况,而if…else…语句更加灵活,常用于范围判断(大于,等于某个范围)
switch语句进行条件判断后直接执行到程序的条件语句,效率更高.而if…else语句有几种条件,就得判断多少次
当分支比较少时,if…else语句的执行效率比switch语句高
当分支比较多时,switch语句的执行效率比较高,而且结构更清晰