一.运算符
-
赋值运算符:
- 赋值运算符有:= ,+= ,- =,*=,/+,%=
= 赋值运算符执行过程 : 将等号右边的值赋予给左边, 要求左边必须是一个容器
-
一元运算符:
1. 自增:符号:++ 作用:让变量的值 +1
2.自减: 符号:-- 作用:让变量的值 -1
前置自增:先自加在使用(记忆口诀:++在前 先加)
let i = 1
console.log(++i + 2) //结果是4
// 注意:i是2
// i先自加1,变成2之后,在和后面的2相加
后置自增:先使用再自加(记忆口诀:++在后,后加)
let i = 1
console.log(i++ + 1) //结果是3
//注意:此时的i是1
//先和2相加,先运算输出完毕后,i再自加是2
let i = 1
console.log(i++ + ++i +i) //结果为7
-
比较运算符:
比较运算符:
> : 左边是否大于右边
=: 左边是否大于或等于右边
<=: 左边是否小于或等于右边
==: 左右两边值是否相等 (仅仅判断值是否相等)
===: 左右两边是否类型和值都相等 (判断值和数据类型是否相等)
!==: 左右两边是否不全等
比较结果为boolean类型,即只会得到 true 或 false
NaN不等于任何值,包括它本身,涉及到NaN都是false
不要比小数,小数有精度
不同的类型之间会发生隐式转换
-
逻辑运算符:
// 逻辑非 取反 ! 变量 将变量 由true 变成false 由 false 变成true // 逻辑非还涉及到隐式转换 let a = trun console.log(!a); // 取反
-
运算符优先级:
一元运算符里面的逻辑非优先级很高
逻辑与比逻辑或优先级高
二.语句:
-
表达式和语句的区别:
因为表达式可被求值,所以它可以写在赋值语句的右侧。
而语句不一定有值,所以比如 alert() for和break 等语句就不 能被用于赋值
-
分支语句:
if分支语句分为:单分支,双分支,多分支
括号内的条件为true时,进入大括号里执行代码
小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类
单分支if语句:
// 如果if里面的判断条件为true时 执行代码,否侧不执行
// 判断条件里的类型会自动转换成布尔类型
if(true){
console.log(123);
}
双分支if语句:
let a = +prompt('请输入你的分数')
if(a>700){
document.write('恭喜考上了')
}else{
document.write('家里蹲')
}
多分支语句:
if(条件1){
代码1
}else if(条件2){
代码2
}else if(条件3){
代码3
}else{
代码n
}
释义:
- 先判断条件1,若满足条件1就执行代码1,其他的不执行
- 若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
- 若依然不满足继续往下判断,依次类推
- 若以上条件都不满足,执行else里的代码
- 可以写N个条件,但这里演示只写2个
-
三元运算符:
- 符号:?与:配合使用
// 🔔可以使用 三元运算符(表达式)取值
//🔔 5 < 3 ? console.log('对') : console.log('对')
let res = 5 > 3 ? '对' : '错'
console.log(res)
-
switch语句:
// 如果break去掉的话就成为穿透
let week = +prompt('请输入1~7之间:')
switch (week) {
case 1:
document.write('今天星期一')
break;
case 2:
document.write('今天星期二')
break;
case 3:
document.write('今天星期三')
break;
default:
document.write('请重新输入')
break;
}
释义:
1.找到根小括号里数据全等的case值,并执行里面对应的代码
2.如果没有全等===的则执行default里面的代码
注意:
1.switch case 语句一般用于等值判断,不舍于区间判断
2.swithch case一般需要配合break关键字使用,没有break会使case穿透
if 多分支语句和 switch的区别:
共同点
- 都能实现多分支选择, 多选1
大部分情况下可以互换
区别:
switch…case语句通常处理case为比较确定值的情况,而if…else…语句更加灵活,通常用于范围判断(大于,等于某个范围)。
switch 语句进行判断后直接执行到程序的语句,效率更高,而if…else语句有几种判断条件,就得判断多少次
switch 一定要注意 必须是 === 全等,一定注意 数据类型,同时注意break否则会有穿透效果
结论:
当分支比较少时,if…else语句执行效率高。
当分支比较多时,switch语句执行效率高,而且结构更清晰。
-
循环语句:
重复执行一些操作, while : 在…. 期间, 所以 while循环 就是在满足条件期间,重复执行某些代码。
//while循环语法:
whlie(循环条件){
循环体
}
释义:
1. 跟if语句很像,都要满足小括号里的条件为true才会进入 循环体 执行代码
2. while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到 小括号判断条件,直到括号内条件不满足,即跳出
循环三元素:
while循环需要具备三要素:
1. 变量起始值
2. 终止条件(没有终止条件,循环会一直执行,造成死循环)
3. 变量变化量(用自增或者自减)
let i = 1
while(i<10){
document.write('月薪过万<br>')
i++
循环退出:
循环结束: break:跳出所在的循环
区别:
continue 退出本次循环,一般用于排除或者跳过某一个选项的时候, 可以使用continue,
break 退出整个循环,一般用于结果已经得到, 后续的循环不需要的时候可以使用