目录
运算符
赋值运算符
‘ = ’ 赋值运算符执行过程?将等号右边的值赋予给左边,要求左边必须是一个容器
‘ += ’ 出现是为了简化代码,让 num 加(减- 乘* 除/ 余%)5 怎么写呢? num += 5
num += 4
num = num +4 他们两个是一样的
一元运算符
众多的 JavaScript 的运算符可以根据所需表达式的个数,分为一元运算符、二元运算符、三元运算符(有几个操作数就是几元运算符,一元运算符:正号与负号)
我们可以有更简便的写法了~~
自增:符号:+
作用:让变量的值+1
自减:符号:-
作用:让变量的值-1
使用场景:经常用于计数来使用。比如进行10次操作,用它来计算进行了多少次了
实际开发中,我们一般都是单独使用的,后置++更多
自增运算符的用法:
前置自增:
let num 1
++num
其作用相当于num+=1
◆后置自增:
let num 1
num++
其作用相当于num+=1
前置自增和后置自增单独使用没有区别
后面++后置自增会使用相对较多,井且都是单独使用
let i =1
console.log(i++ + ++i +i)
答案:7(1+3+3=7)
比较运算符
== 左右两边值是否相等
=== 左右两边是否类型和值都相等
!== 左右两边是否不全等
比较结果为boolean类型,即只会得到 true 或 false
对比:
= 单等是赋值
== 是判断
=== 是全等
开发中判断是否相等,强烈推荐使用 ===,不等 !==
比较运算符有隐式转换把'2'转换为2 双等号 只判断 值
console.log(2 == '2') // true
全等判断 值 和 数据类型 都一样才行
console.log(2 === '2') // false
以后判断是否相等请用 ===
NaN不等于任何人,包括他自己
console.log(NaN === NaN) // false
- 字符串比较,是比较字符对应的ASCII码(比较的少,了解即可)
- 从左往右依次比较,如果第一位一样再比较第二位,以此类推
- NaN不等于任何值,包括它本身,涉及到"NaN“都是false
- 尽量不要比较小数,因为小数有精度问题
- 不同类型之间比较会发生隐式转换,最终把数据隐式转换转成number类型再比较
逻辑运算符
提问:如果我想判断一个变量um是否大于5且小于10,怎么办?
错误写法:5<num<10
使用场景:逻辑运算符用来解决多重条件判断
正确写法:num>5 && num<10
![](https://i-blog.csdnimg.cn/blog_migrate/a40d502fa3394dd5ba0dbb550543c3c4.png)
运算符优先级
一元运算符里面的逻辑非优先级很高
逻辑与 比 逻辑或 优先级高(遇到或和与,先算与)
语句
表达式与语句
● 表达式:表达式是可以被求值的代码,JavaScript引擎会将其计算出一个结果。
X=7
3+4
num++
● 语句:语句是一段可以执行的代码。
比如:prompt()可以弹出一个输入框,还有if语句for循环语句等等
程序三大流程控制语句
顺序结构,分支结构,循环结构
从上往下执行,顺序结构
根据条件选择执行代码,分支结构
某段代码被重复执行,循环结构
分支语句
分支语句包含:if分支语句,三元运算符,switch语句
if 语句
● if语句有三种使用:单分支、双分支、多分支
●单分支使用语法:
if(条件){
满足条件要执行的代码
}
> 括号内的条件为true时,进入大括号里执行代码
> 小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
> 如果大括号只有一个语句,大括号可以省略,但是,俺们不提倡这么做~
if 多分支语句
使用场景:适合于有多个结果的时候。
if(条件1){
代码1
}else if(条件2){
代码2
}else if(条件3){
代码3
}else{
代码n
}
释义:
- 先判断条件1,若满足条件1就执行代码1,其他不执行
- 若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
- 若依然不满足继续往下判断,依次类推
- 若以上条件都不满足,执行else里的代码n
- 注:可以写N个条件,但这里演示只写2个
三元表达式
条件 ?代码1 :代码2
3 < 5 ? alert('真的') :alert('假的') ----> 3小于5 吗?满足(弹出真的) 否则 : (弹出假的)
switch语句
目标:能利用switch执行满足条件的语句
switch(数据){
case 值1:
代码1
break
case 值2:
代码2
break
default:
代码n
break
}
释义:
- 找到跟小括号里数据全等的 case值,并执行里面对应的代码
- 若没有全等 === 的则 执行 default 里的代码(全等类型也要一样)
例:数据若跟值2全等,则执行代码2
1.switch case 语句一般用于等值判断,不适合区间判断
2.switch case 一般需要配合break关键字使用没有break会造成case穿透
循环语句
目标:掌握循环结构,实现一段代码重复执行
断点调试
- 作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug
- 浏览器打开调试界面
- 按F12打开开发者工具
- 点到 sources 一栏
- 选择代码文件
while循环
循环:重复执行一些操作,while:在.....期间,所以while循环就是在满足条件期间,重复执行某些代码。比如我们运行相同的代码输出5次(输出5句“我学的很棒”)
while循环 基本语法
while(循环条件){
要重复执行的代码(循环体)
}
释义:
- 跟if语句很像,都要满足小括号里的条件为true才进入循环体执行代码
- while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件,直到括号内条件不满足,即跳出
while循环 三要素
循环的本质就是以某个变量为起始值,然后不断产生变化量,慢慢靠近终止条件的过程。
所以,while循环需要具备三要素:
1. 变量起始值
2. 终止条件(没有终止条件,循环会一直执行,造成死循环)
3. 变量变化量(用自增或者自减)
let i=1
while (i<=3){
document.write('我会循环三次<br>')
i++
}
循环退出
目标:能说出 continue 和 breakl 区别
循环结束:break,continue
break:退出循环
continue:结束次循环,继续下次循环
break 退出整个循环
//打印5句话
let i=1
while (i <= 5)
if(i === 3){
break //退出整个循环
}
console.1og(我要吃第${i}个包子~)
i++
}
continue 结束本次循环
let i = 1
while (i <= 5){
if(i === 3){
i++
continue // 结東本次循环
}
console.1og(`我要吃第${i}个包子~)
i++
}
区别:
break 退出整个循环,一般用于结果已经得到,后续的循环不需要的时候可以使用
continue 退出本次循环,一般用于排除或者跳过某一个选项的时候,可以使用 continue