运算符
算数运算符:
+ - * / % ++ --
1、除了加法的所有运算全部都会先转成number类型再进行运算,如果转换失败会出现NaN
2、NaN与一个数值相加得到的还是NaN
3、在加法运算中如果有一个值是字符串那么就会进行字符串拼接
4、自增(++)和自减(--)的前置和后置:前置会先执行自增(++)或自减(--),再执行其他代码,后置会先执行其他代码,再执行自增(++)或自减(--)
5、自增(++)和自减(--)不能放在()之前
6、运算对应的顺序是先执行()号里面的内容,再执行++或者--操作和对应的*、/、%,再执行+、-操作
逻辑运算符:
&&(与) ||(或) !(非)
1、&&: 两个都为true 取最后一个,有一个为false就取第一个false
2、||: 有一个true就取第一个true,都为false就取最后一个false
3、!: 取反,取相反的结果
比较运算符:
< > <= >= == === != !==
1、当出现的是> <号时会自动进行相关的转换(number类型)
2、对应比较的都是字符串那么会比较对应的ascii码(A 65, a 97)
3、== 比较值 数值类型123和字符串123是相等的(NaN!=NaN)(undefined == null)
4、=== 基于==之上 除了比较值还要比较类型 123!='123' (undefined !== null)
5、当出现对应的! 对应的将原本的结果取反就可以了
赋值运算符:
= += -= *= /= %=
注意:赋值运算符在运算中是最后执行的操作
位移运算符:
<< >>
位移运算符:进位补零,退位加零
表达式的概念:
1、表达式是由对应的值(变量)和运算符构成的式子
2、由对应的算法运算符组成的式子是算法表达式 (返回对应的结果)
3、由对应的逻辑运算符组成的式子是逻辑表达式 (返回对应的值)
4、由对应的比较运算符组成的式子是条件表达式 (返回Boolean类型的值)
三目运算符:
条件表达式?true的结果:false的结果
示例:
执行顺序:先算括号,再算*、/、%,再逻辑运算,再三目运算,最后赋值
控制语句:
1、控制语句是对应程序的一个控制,分为条件控制语句和循环控制语句
2、条件控件语句是根据对应的条件来执行对应的代码
3、循环控制语句是根据对应的条件来执行多次重复的代码
条件控制语句:
常见的控制语句有:
1、if else(根据对应的boolean条件值来进行判断,如果传入的条件返回的不是boolean类型会转换为对应的boolean类型)
2、switch case(根据对应的值来进行比对,里面采用的是===(恒等)会自动进行比对)
单分支结构(if else):
if(条件表达式){
对应满足条件执行的代码
}else{
不满足条件执行的代码
}
多分支结构(else if):
if(条件1){
满足条件执行的代码
}else if(条件二){
满足条件执行的代码
}...
else{
所有条件都不满足执行的代码
}
if else的嵌套:if else是允许多层嵌套的,一般我们的嵌套不会超过两层(超过两层嵌套并不建议写)
if(条件1){
if(子条件1){
满足子条件1执行的代码
}else if(子条件2){
满足子条件2执行的代码
}else{
不满足子条件执行的代码
}
}else{
不满足条件1执行的代码
}
if else的一些简化操作:
1、当你的if块和或者else块只有一行代码的时候是可以省略{}的(一般不建议省略)
2、每句代码的结束是可以有分号,可以没有分号的,但是一般建议加上;(后续我们需要减少对应的编写的文件的大小会把所有的js放在一行)
if(1>2)
console.log('aaa')
else if(2>3)
console.log('bbb')
else
console.log('ccc')
switch case控制语句:
1、根据输入的值判断对应的执行的操作
2、switch里面采用的是=== 类型必须相等,switch支持多个值,也支持嵌套
3、在switch 如果没有break语句的时候,会从满足条件那句开始直到最后
4、break 退出,当前这个switch不执行了
switch(值表达式){
case 值1:
执行的代码
break;
case 值2:
执行的代码
break;
defulat:
上面都不满足执行的代码
}
switch case嵌套示例:
//支持嵌套
switch(1){
case 1:
switch(2){
case 2:
console.log('我是2');
break;
default:
console.log('hello');
}
break;
default:
console.log('default');
}
if else 和switch case的区别:
1、if else 常用于区间判断,switch case用于值判断(枚举判断)。
2、if else的效率低于switch case(用空间换时间),如果当前只有某个值的判断建议使用switch case。
总结:
1、if else 是用于区间判断 ,switch case是用于值判断。
2、switch case里面使用的判断是恒等判断 (支持所有类型的值)。
3、if else和switch case都支持嵌套 (一般建议不要嵌套两层以上)。
4、if else可以单独用。
5、if else的多分枝采用 else if来实现,switch case里面的多分支采用多个case连用。
6、if (else if 、else)后面的代码如果只有一行那么可以省略{},但是一般不建议省略。
7、if else里面的条件表达式返回的是对应的boolean类型的值,如果当前的式子不是条件表达式会自动转换为boolean类型。
8、if else的效率低于switch case(用空间换时间),如果当前只有某个值的判断建议使用switch(枚举 判断一般使用switch)。