小结2

82 阅读1分钟

比较运算符> < == === >= <= != !==

结果:布尔值
隐式转换:默认,转为数字,再比较大小
1、如果参与比较的左右两边都是字符串,则按位PK每个字符的十六进制的unicode号(十进制ascii码);
0-9<A-Z<a-z<汉字:可以搜索:中文字符集 Unicode 编码范围查看
常识:汉字的第一个字:一:unicode:4E00 - ascii:19968
汉字的最后一个字:龥:unicode:9FA5 - ascii:40869
2NaN参与任何比较运算,结果都是false,所以没有办法使用普通的比较运算来判断是不是NaN
解决方法:!isNaN(x);用来判断x是否为NaN
3undefined==null;//true
想要区分:undefinednull必须使用===比较
=== !==:不带隐式转换的等值比较和不等比较,要求数值相同,并且数据类型也要相同

逻辑运算

&&:全部满足,才满足
一个不满足,就不满足

||:全部不满足,才不满足
一个满足,就满足

!:颠倒布尔值
特殊:短路逻辑:如果前一个条件,已经能够得出最后结论了,则不看后续
&&短路:如果前一个条件满足,则后一个操作才执行,如果前一个条件不满足,则不管后续操作
目的:简化【简单的】分支:
特殊:1、一个条件一件事,满足就,不满足就不做:if(){}
        2、【简单的】- 操作只能有一句话,如果有多句话,那还是使用if结构
	语法:条件&&(操作);
	举例:原来:if(money>=500){money*=0.8};
	现在:money>=500&&(money*=0.8);

赋值运算+= -= *= /= %=

一个操作两件事,先计算,在赋值回去
	i++; //递增:每次固定只能+1
	i+=1;//累加:每次加几由程序员自己决定
	i++ => i+=1 => i=i+1;
笔试题:++ii++ 的区别?
1、单独使用(独立存在)时,放前放后无所谓,完全一样
2、如果参与了别的表达式,变量中的值都会+1
        前++返回的是【加了过后】的新值
        后++返回的是【加了之前】的旧值

三目运算

语法
1、条件?操作1:默认操作;
2、条件1?操作1:条件2?操作2:默认操作;
  特殊:
        1、【简单的】,操作只能有一句话
        2、默认操作必须写出来,不能省略,省略会导致语法错误
    总结:
		if		 ===			&&短路
		if...else	 ===			三目
		if...else if...else	===		三目