【JavaScript】运算式和表达式

【JavaScript】运算式和表达式

1. 运算符和表达式
1. 算数运算
2. 关系运算: 做比较,做判断
包括: > >= < <= == !=
返回值: bool类型true/false
隐式转换: 默认,都转为数字再比较
特殊,两个值都是字符串时,按位比较每个字符的unicode号。
特殊: 1. 区分null和undefined
全等===: 要求数据类型首先相等,再比较值是否相等
不带隐式转换的==比较
何时使用: 只要不希望在等于比较时,自动隐式转换
固定套路: 今后,只要区分null和undefined,就用全等
不全等!==: 不带隐式转换的!=比较,作为全等的反义
2. 判断NaN:
问题:不能用==或!=判断
解决: var bool=isNaN(num)
何时使用: 判断num是否是NaN时专用。
返回值: num是NaN,就返回true
不是NaN,就返回false

3. 逻辑运算: 将多个条件(关系运算)综合起来得出最终结论
包含: &&(逻辑与,而且) ||(逻辑或,或者) !
条件1&&条件2: 只有两个条件都为true时,才返回true
只要其中一个为false,就返回false
条件1或条件2: 只要其中之一为true,就返回true
除非2个条件都为false,才返回false
!条件: 取反

这是一个逻辑与、或的列子!

function check(char){
				if(char&gt;="0"&amp;&amp;char&lt;="9"){ alert("是数字"); }else if(char&gt;="A"&amp;&amp;char&lt;="Z"){ alert("是大写字母"); }else if(char&gt;="a"&amp;&amp;char&lt;="z"){ alert("是小写字母"); }else if(char&gt;="一"&amp;&amp;char&lt;="\u9fa5"){
					alert("是汉字");
				}else{
					alert("其他字符");
				}
			}
			check(prompt("请输入一个字符"));

隐式转换:将每个条件隐式转为Boolean
运算符优先级: 见:operators.jpg
优先级高的先运算
***短路逻辑: 如果前一个条件已经可以得出最终结论
则后续条件不再执行。
&&: 如果前一个条件为false,后续条件不再执行。结论为false
||: 如果前一个条件为true,后续条件不再执行。结论为true
***利用短路逻辑:
&&: 实现简单分支: 一个条件一件事,满足就做,不满足就不做
条件&&操作; 相当于:if(条件){操作}
只有条件满足(true),才执行后续“操作”
如果条件不满足,就什么也不做
||: 实现两个值,二选一。
值1||值2: 如果值1转为bool后为true,则返回值1
如果值1转为bool后为false,则选值2返回

返回值: 默认逻辑预算返回bool值true、false
在利用短路逻辑时,不再返回bool值,而是返回两个值之一

4. 位运算:
左移和右移:
n<<m => n* 2的m次方
n>>m => n/ 2的m次方
固定套路: 取整: n>>>0 n^0 n|0

5. 赋值运算:
=: 将等号右边的值,保存在等号左边的变量中
赋值表达式也有返回值: 返回将要保存回变量的新值

扩展赋值运算:简写:
a=a+5; 简写为: a+=5; 累加
a=a-5; 简写为: a-=5;
a=a*5; 简写为: a*=5;
a=a/5; 简写为: a/=5;
a=a%5; 简写为: a%=5;

***递增/递减: 简写:
a=a+1; 简写为: a+=1; 简写为: a++;
a=a-1; 简写为: a-=1; 简写为: a--;

前++和后++: a++ vs ++a;
相同点: a中的值一定被+了1
不同点: 返回值: a++返回a的旧值
++a返回a的新值

李东辉

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

  1. avatar 热腾网 5

    感觉运算在那种语言中都是大同小异的。