1.运算符有哪些?
1.1.算术运算符
算术运算符
+,-,*,/,%
% 取值范围
Math.random() 生成0-1之间的值,包含0,不包含1 [0,1)
求取值范围 0|1 %2
%5 取值范围0-4
%10 取值范围0-9
%100 取值范围0-99
1.2.逻辑运算符
逻辑运算符
&& 与
|| 或
! 非 取反
短路运算符
或 || 只找真的,找到真的,就不往后面执行
与 && 只找假的,找到假的,就不在往后面执行
&& 和 ||
!取反
1.3.关系运算符
关系运算符
>,<,>=,<=,==,===,!=,!==(!==不全等于)
= 赋值,右边赋值给左边
== 会隐式转换,它比较的是值,不是类型
10 == "10"
=== 不会隐式转换,比较的是值与类型
console.log("10" === 10);
!=
!== 值跟类型满足一个就是true
只能是类型相等,或是值相等,只能满足其中的一个就为true
比较运算符的规则(牢记)
1.数值与数值比较,直接比较大小
2.数值与字符串类型的数字比较,字符串转换成数字,再比较大小
3.字符串与字符串比较,把字符串转换成ASCII码,再进行比较大小
a ~ z 97 ~ 122
A ~ Z 65 ~ 90
0 ~ 9 48 ~ 570
看见NaN参与比较,就是false
1.4.一元运算符
一元运算符
a++ 先取值,后运算
++a 先运算,后赋值
a-- 先取值,后运算
--a 先运算,后赋值
优先级
一元 运算符 > *,/ > +,-
1.5.三目运算符
三目运算符
语法:
表达式 ? 条件1:条件2
1 == 1 ? true : false;
1.6.赋值运算符
赋值运算符
+=,-=,*=,/=,%=,=
1.7.位移运算符
位移运算符
<< 左位移 , >> 右位移
2 2 把第一个2,转换成2进制,再向左边或是右边移动n位,n:就是第二个数
2 3 把第一个2,转换成2进制,再向左边或是右边移动3位,n:就是第二个数
2 >> 2等于0, 2 << 2 等于8
1.8.拼接运算符
拼接运算符
+ 左右两边,有一边出现字符,就是拼接
2.表达式的概念
表达式的概念:
由运算符和操作数(变量或常量)组成的式子
`算术运算符`组成的式子叫算术表达式, 如:2+3;
`关系运算符`组成的式子叫关系表达式或者条件表达式, 如:a>5;
`逻辑运算符`组成的式子叫做逻辑表达式, 如:a&&b
3.运算符的优先级

4.逻辑分支
4.1单分支
if单分支
if条件判断语句的写法:
if (表达式){
执行语句
}
当括号内的表达式结果成立(为true时),则执行大括号内的语句,否则不执行。
4.2双分支
if双分支语句
if双分支语句的写法:
if(表达式){
执行语句1
}
else{
执行语句2
}
当if括号内的表达式结果成立,进入执行语句1,否则进入执行语句2;
4.3多分支
if多分支语句
if多分支语句的写法:
if(表达式){
执行语句1
}
else if(表达式2){
执行语句2
}
else if(表达式3){
执行语句3
}
else{
执行语句n
}
4.4if嵌套
IF的嵌套
将整个if语句块插入另一个if语句块中
if (表达式1) {
if (表达式2) {
if (表达式3){
语句;
} else{
语句;
}
} else{
语句;
}
}
`注意: 嵌套if时, 内层的每一对if-else代码要缩进且对齐;编写代码时,else要与最近的if配对`
4.5 switch
Switch语句的写法:
switch(表达式) {
case 常量1: 语句; break;
case 常量2: 语句; break;
…
case 常量n: 语句; break;
default:语句; break;
}
表达式的结果等于哪个case的常量,则执行其后的语句,执行完break就跳出switch结构,都不满足则执行default的语句。
break的作用:是跳出switch结构,如果没有break,则继续执行下面分支的的语句(而不进行判断)。
注意
`case穿透,要加break`
`表达式`的值跟`常量`的值要恒等于,值跟类型一致
switch的应用场景: 表达式为固定值, 不能判断范围
当case 后面接的是表达式,带有取值范围的
switch(true)
例如:
var x = Number(prompt("请输入您的会员积分!"));
switch (true) {
case x < 2000:
console.log("90%");
break;
case 2000 < x && x < 4000:
console.log(" 80%");
break;
case 4000 <= x && x < 8000:
console.log("70%");
break;
default:
console.log("60%");
break;
}
5.程序流程控制
程序的三大流程控制:
我们的计算机在执行一个程序的时候,最基本的方式是一条语句接一条语句的执行。
但不可能所有的问题都能用顺序执行方式就能解决,总会有一些跳转。
采用结构化的程序设计,可以大大提高开发程序的速度、提高程序的可读性、程序运行的速度和效率。
结构化程序是由若干个基本结构组合而成,每一个结构可以包含若干条语句和其它基本结构。共有三种基本结构:
`顺序`:从上朝下执行的代码就是顺序
`分支(选择)`:根据不同的情况,执行对应代码
`循环`:重复做一件事情