运算符和表达式

程序: 人的想法,在计算机中的执行
运算符: 专门模拟人类想法的特殊符号
表达式: 完成一项专门任务的公式: 由变量,运算符,数据组成
所有表达式都有返回值。

算术运算: + - * / %
%:模运算/取余数
比如: m%n: m除以n,取除不尽的余数部分
何时使用: 1. 判断能否整除
2. 限制一个运算结果不能超过指定上限
隐式转换: 默认: 都转为数字类型(Number(x)),再算术计算
返回值: 一定是数字
特殊: +运算中,只要碰上字符串,一切都转为字符串。+法计算,变为字符串拼接。
固定套路: x+"";
返回值: 一定是字符串

关系运算: 作比较
返回值: true/false
包括: > < >= <= == !=
隐式转换: 默认都转为数字(Number(x)),再比较大小
null或引用该类型的对象,则不隐式转换而比较地址值。
特殊: 参与比较的两个值都是字符串,不再转数字
而是逐位PK每个字符的unicode号
NaN: NaN不等于一切,所以普通关系运算无法判断NaN
isNaN(num): 专门判断num是不是NaN
何时使用: 只要检查一个数是否是NaN
null和undefined: 普通的==会将undefined自动转为null
=== 全等: 不带隐式转换的==比较
首先要求类型相同,然后数值相等
!== 不全等: 不带隐式转换的!=比较
何时使用: 只有不希望隐式转换时

逻辑运算: 将多个关系运算综合得出最终结论
包括: &&(且) ||(或) !(非)
条件1&&条件2: 只有两个条件都满足,才返回true
只要有任意一个条件不满足,就返回false
条件1||条件2: 只要任意一个条件满足,就返回true
除非所有条件都不满足才返回false
!条件: 颠倒条件的bool结果
隐式转换: 每个条件默认都被转为bool做判断
固定套路: !!x

短路逻辑: 如果前一个条件已经可以得出最终结论,其余条件不再执行。
&&: 如果前一个条件为false,则整个结论为false
||: 如果前一个条件为true,则整个结论为true
利用短路逻辑: 忽略逻辑运算本身的返回结果
&&: 简单分支结构: 一个条件,一件事,满足就执行不满足就什么也不做。
条件&&操作: 如果满足"条件",才执行"操作"
否则,什么也不做
||: 两个值二选一使用,(默认值)
值1||值2: 如果值1可被转为true(有效),就返回值1
否则返回值2

位运算: 简化代码量
左移: m<<n : m* 2的n次方 m*Math.pow(2,n)
右移: m>>n : m/ 2的n次方 m/Math.pow(2,n)

取整: m>>>0 m^0 m|0 parseInt(m)

赋值运算: 将等号右边的值,保存在等号左边的变量中
返回值: 等号右侧表达式的计算结果
也是要存入左侧变量中的值
简写: 扩展赋值运算:
一句话做两件事: 1. 取出变量中的值做计算
2. 将结果再存回变量中
m+=n; m=m+n; 累加
m-=n; m=m-n;
m*=n; m=m*n;
m/=n; m=m/n;
m%=n; m=m%n;
简写: 递增递减:
n++ 递增1 : n+=1 n=n+1
n-- 递减1 : n-=1 n=n-1

++n vs n++
相同: n中的值都被+1
不同: 返回值: 前++,返回新值
后++,返回旧值

posted @ 2017-02-13 16:45  御风飞天  阅读(248)  评论(0编辑  收藏  举报