JavaScript运算符和逻辑分支
一、运算符
1.一元运算符优先级
2.运算符之间的比较关系
- String与Number之间的比较关系(字符串会自动转换成数值)
- undefined与null(undefined是null衍生出的,对应的值相等,但对应的数据类型不同)
- 字符串与字符串(字符串与字符串之间的比较会自动转换为ASCII码进行比较,但只会比较第一位ASCII码)
- Boolean与null(布尔类型与null之间比较会自动转换为数值进行比较,但出现NaN时会变成false)
- 全等比较(比较的数据类型之间类型与数值都会进行比较,只有当类型和数值都相等时才会相等)
3.逻辑运算符
- 与运算符 && (只有当&&前后都为ture时才会显示ture,如果前面的为false则不会看后面的直接显示false)
- 或运算符 || (只要有ture时就会显示ture,如果都为ture则会显示第一个为ture的,都为false时则会显示最后一个为false的)
- 非运算符 ! (取反操作)
- 三目运算符 ?:: (三目运算符的优先级低于逻辑运算符,如果出现false直接取得false,都是ture就取最后一个)
二、条件控制语句
1.if else if else
- 语法:if (条件){
代码块
}else if (条件) {
代码块
}else{
代码块
} - else if语句可以根据已知条件增加或者减少
- 如果代码只有一行的话{}可以省略不写
- 执行顺序从上往下依次执行,有满足条件的出现时就不会向下执行
- if语句与if语句之间可以嵌套使用来增加更多限制条件来使代码逻辑更加完善
2.switch语句
- 语法:switch (声明的变量){
case ' ' :代码块
break
case2 ' ' :代码块
break
...
default:代码块
}
其中case中' '与声明的变量之间进行恒等比较,break用来跳出整个代码块,default为默认代码块当上面所有的都不执行就会执行default中的代码块,switch语句具有穿透性不加break的话会从第一个满足条件的语句一直执行到最后一句 - 多个case写在一起时候表示这两个case执行同一个代码块
3.if语句与switch语句的区别
- 首先if语句能够执行区间数值型也能够执行固定值型,但switch语句只能执行固定值型的
- if语句与switch语句的执行效率是不同的(如果只有一行代码那么if语句的效率高于switch语句,多行代码时switch语句效率更高,switch语句在工作时开辟多个内存空间从而使得多行代码效率更高,if语句只是一条一条语句从上往下执
行所以执行多行代码时的效率会低于switch语句