运算符
算术运算符
- 在加法中如果有字符串,那么得到的一定是字符串.
- 在其他的运算会将其他类型转换成number类型再运算
- 如果在运算中没有字符串,而出现NaN那结果一定是NaN
++ 和 -- 前置后置的区别
- ++前置先执行+1操作,再执行本行代码
- ++后置先执行本行代码,在执行加一操作
逻辑运算符
- && 全部都为true才是true 取得是最后一个true 只要一个为false那么对应的结果就是false 取得是第一个false
- || 只要有一个是true 结果就是true 那么取得是第一个true 全部为false结果才为false 取得是最后一个false
- !进行boolean类型的强制转换 取反将true变false false变为true
- 短路与 && 到达为false 后面的不执行 短路或 || 到达为true后面的不执行
比较运算符
-
返回的值都是boolean类型的值
-
“1” == 1 比较值 “1”!== 1 比较值的同时比较类型
-
NaN!=NaN
-
出现NaN大部分都是false (!=)
-
任意类型和数值进行比较会被转为数值
-
字符串和字符串比较那么比较的是acsii码(从第一位开始比较 大写A 65 小写a 97)
赋值运算符
-
赋值运算最后执行
-
+= -= *= ...都是会在原本的基础上进行赋值
三目运算符
boolear值?true的结果:false的结果
例:
var a=1+3>5?4:5 //a的结果为5
表达式
表达式是由运算符拼接的公式
算术表达式(算法运算符拼接的表达式 )
1+5+6
条件表达式(比较运算符拼接的表达式 )
5+4>2
关系表达式(逻辑运算符拼接的表达式 )
1+2=3 && 2+5>7
运算符的执行顺序
条件控制语句
程序控制语句所有的语言都具备 ,主要分为循环控制语句(循环执行)和条件控制语句(根据不同的条件执行不同的内容)
常用的条件语句有
- if else
- switch case
if else
if(条件表达式){
//条件满足执行的内容
}else{
//条件不满足执行的内容
}
示例
判断一个数是否是奇数还是偶数
var n = prompt('请输入你需要验证的数值')
if (n % 2 == 0) {
console.log('是偶数')
} else {
console.log('是奇数')
}
if else的嵌套
if esle允许多层嵌套 (建议不要超过两层)
if(条件表达式){
//true的时候走的
if(条件表达式){
....
}else{
//false的时候走的
}
}else{
//false的时候走的
}
例
判断输入的数值的奇偶
var n = prompt('请输入你需要验证的数值')
//用于判断的方法 isNaN
if(!isNaN(Number(n))){
if (n % 2 == 0) {
console.log('是偶数')
} else {
console.log('是奇数')
}
}else {
console.log('输入出错')
}
注意事项
-
if else他只会进入其中的一个条件中 不会同时进入俩个同级的代码块
-
if 里面的条件可以为表达式也可以为值 但是都会被强制转换为boolean类型
-
if else可以嵌套多层 一般建议嵌套不超过俩层(可读性 可维护性)
switch case
switch(值){
case 值1:
执行的代码
break
case 值2:
执行的代码
break
...
default:
上面都不满足的默认的执行代码
}
例
/*
某个空调有对应的开关 当你按下的开关键为1号键的时候 执行加热操作
按下2号键 执行制冷操作
按下3号键 执行通风操作
按下的键为其他 不执行操作
*/
var code = prompt('请输入你需要执行的指令')
switch (Number(code)) {
case 1://单独的分支
console.log('正在执行加热操作')
break //break 跳出 结束这个switch块 后续的不再执行
case 2:
console.log('正在执行制冷操作')
break
case 3:
console.log('正在执行通风操作')
break
default:
console.log('错误指令 不执行操作')
}
-
switch 的值比对用到的是=== 必须要类型和值都一致
-
每个case块都是一个分支 如果没有break那么会进入下一个分支
-
多个分支可以执行一个操作
-
break用于跳出switch块 那么后续的分支不再执行
-
switch 不适用于范围内的比对
-
default 默认的执行 上面都不满足的情况下执行
switch块允许多层嵌套
switch(n){
case 值1:
switch(i){
case 值1:
...
break
}
break
case 值2:
....
default:
...
}
例
判断输入值的奇偶
ar n = prompt('请输入值')
//判断是否输入正确
switch(isNaN(Number(n))){
case true:
switch(n%2){
case 0:
console.log('偶数')
break
case 1:
console.log('奇数')
break
}
break
case false:
console.log('输入出错')
}
-
switch 适合实际的值的列举(枚举) if 使用范围内容条件判断
-
switch 空间复杂度高于if switch时间复杂度低于if