一、一元运算符
注:()不能与++一起使用,因为优先级一样,控制台会报错,如果写一行,要分开写
二、比较
1、字符与数值进行比较-->会自动转换成number,若转换不成功,就是NaN,结果就是false
2、只要看到NaN,就是false(NaN==NaN,结果就是false)
3、字符串和字符串之间的比较(转成ASCII码进行比较,A:65,a:65,比较第一位)
eg:
' a ' > ' b ' 结果为false
' bAA ' < ' azz ' 结果为false
4、undefined和null进行比较(undefined是null的派生子类)
undefined==null 结果为true
undefined===null 结果为false
5、boolean类型的值与null进行比较(自动转数值)
eg:
true>null 结果为true
true>undefined 结果为false(undefined->NaN)
6、null和0 的比较(null是空对象的引用)
eg:
null==0 结果为false(null对应的是一个引用类型,引用类型比较的是地址)
注:null在进行>和<等会转成number类型,但是在==时不会转成number类型
7、在同时有转换和比较的时候,会攸县转换再进行比较
三、逻辑运算符
&&短路与
&断路与
&&所有的同时满足才为真,只要前面有一个假,后面就不会看了
&无论真假,他都要看完全部
所以比较二者而言,第一种效率更加高一点
||短路或
|断路或
||有一个true就是true,前面只要出现true,就不用看后面了
|一样要看完全部
第一种效率高
!取反 自动转成布尔类型
' 短路或 '具体操作
1、如果两个都是false,取最后一个值
2、如果两个都是true情况下,取前面那个为true的结果
三目运算符(三目运算符的优先级要低于逻辑运算符的优先级)
四、程序控制语句
1、逻辑分支if
结构:
顺序:从上朝下执行的代码就是顺序
分支(选择):根据不同的情况,执行对应代码
循环:重复做一件事情
逻辑if-单分支
if条件判断语句的写法:
if (表达式){
执行语句
}
注:
1、if后面的()不能省略。
2、一条执行语句可以省略{}, 多条时不能省略{}, 建议不管是一条还是多条都写上{}
3、当括号内的表达式结果成立(为true时),则执行大括号内的语句,否则不执行。
if条件多分支语句的写法:
if(表达式){
执行语句1
}else if(表达式2){
执行语句2
}
..........
else{
执行语句n
}
注:从上往下,满足哪个条件就执行其相对应的语句,都不满足时,执行最后的else的语句,只能
进入其中之一。
if 的嵌套(嵌套if时, 内层的每一对if-else代码要缩进且对齐;编写代码时,else要与最近的if配对。)
2、逻辑分支switch
语法:
switch(表达式) {
case 常量1: 语句; break;
case 常量2: 语句; break;
…
case 常量n: 语句; break;
default:语句; break;
}
注:break的作用:是跳出switch结构,如果没有break,则继续执行下面分支的的语句(而不进行
判 断)。注意case穿透,要加break