比较运算符:
作用:比较两个数据大小、是否相等
> : 左边是否大于右边
<: 左边是否小于右边
>=: 左边是否大于或等于右边
<=: 左边是否小于或等于右边
==: 左右两边是否相等
===: 左右两边是否类型和值都相等
!==: 左右两边是否不全等
比较结果为boolean类型,即只会得到true或false
比较运算符的细节:
字符串比较,是比较的字符对应的ASCII码
从左往右依次比较
如果第一位一样再比较第二位,以此类推
ASCII字符代码表:
NaN不等于任何值,包括它本身
用isNaN函数判断是否为NaN
尽量不要比较小数,因为小数有精度问题
不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较
逻辑运算符
逻辑运算符里的短路
短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
//逻辑且 &&
console.log(false && 20) //false
console.log(5 < 3 && 20) //false
console.log(undefined && 20) //undefined
console.log(null && 20) //null
console.log(0 && 20) //0
console.log(10 && 20) //20
//逻辑或 ||
console.log(false || 20) //20
console.log(5 < 3 || 20) //20
console.log(undefined || 20) //20
console.log(null || 20) //20
console.log(0 || 20) //20
console.log(10 || 20) //10
经常用于函数传递参数的完整性
function getSum(x,y) {
x = x || 0 //如果左边没有传递参数过来就执行
y = y || 0 //如果传递参数过来,就执行参数
return x + y
}
let sum = getSum(x,y)
console.log(sum)
流程控制
程序三大流程控制:
1.if语句
2.switch语句
3.三元表达式
if语句
if语句有三种使用:单分支、双分支、多分支
单分支if语法:
if(条件) {
//满足条件执行的代码
}
括号内的条件为true时,进入大括号里执行代码
小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
双分支if语法:
if(条件) {
//满足条件执行的代码
}else {
//不满足条件执行的代码
}
多分支if语法:
if(条件) {
代码1
}else if {
代码2
}else if {
代码3
}else{
代码N
}
考试成绩案例
let score = prompt('请输入考试成绩')
if (score >= 90) {
alert('A')
} else if (score >= 80) {
alert('B')
} else if (score >= 70) {
alert('C')
} else {
alert('D')
}
switch语句
switch(数据) {
case 值1:
代码1
break
case 值2:
代码2
break
default:
代码N
break
}
break作用:立即结束所在的switch语句
break可防止穿透,若不写会发生穿透效果
穿透效果:从一个case块进入到下一个case块
三元表达式
语法:
条件 ? 满足条件的代码 : 不满足条件的代码
术语解释