运算符:
1. 算数运算符:++ --
2. 关系运算
3. 位运算——了解
4. 赋值运算
5. 三目运算
1. ***算数运算:仅++
++:将当前变量中的值递增1
比如:n++; ++n; <==> n=n+1;
何时使用:今后,只要对变量中的值递增1,还存回变量中
3种情况:n++单独使用,前++和后++都一样
++运算参与到其他表达式中:
前++(++n):将n中的值+1,然后返回*新值*
后++(n++):将n中的值+1,然后返回*旧值*
--:将当前变量中的值递减1
比如:n-- <==>n=n-1;
2. ***关系运算:将两个值做比较:> < >= <= == !=
只能返回两个值之一:如果成立,返回true;否则返回false
隐式转换:将所有类型都转为number类型,再比较!
特殊情况:3种:
1. 两字符串做比较:依次PK每一位字符的unicode编号
只要有一位字符,分出大小,就不再比较
比如:"3">"10" -->true
"Smith">"Scott" -->true
"m" "c"
109 99
2. NaN: NaN和任何数据做大小或等于比较永远返回false
NaN和任何数据做*不等于*比较,永远返回true
isNaN(num):专门判断num是否是NaN
如果是NaN返回true,否则返回false
When:今后只要判断一个数值是否是数字或能否被转为数字,都用isNaN。如果是数字,返回false!否则返回true
3. undefined vs null
undefined == null true
===: 全等:数据类型要相同,再比较值是否相等
不带隐式转换
何时使用:只要不希望关系运算中自动隐式转换时
3. ***逻辑运算:综合多个关系运算的结果得出最终结论
隐式类型转换:自动将每个条件转为Boolean类型
鄙视题:
alert(4&&5);//?
alert(4||5);//?
返回值只能二选一:满足条件返回true,否则返回false
3个:
关系运算1&&关系运算2:
而且
两个条件必须都是true,才返回true,否则返回false
关系运算1||关系运算2:
或者
只要有一个条件为true,则返回true
只有两个条件都为false时,才返回false
!关系运算:颠倒关系运算的true/false结果
***短路逻辑:如果前一个条件已经可以得出结论,
则后续条件不再执行!
***利用短路逻辑:2种:
1. 利用&&的短路逻辑:
关系运算&&操作:只有满足关系运算时,才执“操作”
2. 利用||的短路逻辑:
关系运算||操作:如果前一个条件不满足,才执行后一个"操作"
4. 位运算:2个
左移:n<<m 将n的二进制,左移m位
比如:1<<3 -->1* 2的3次方
右移:n>>m 将n的二进制,右移m位
比如:64>>3 -->64/ 2的3次方 ==> 8
5. 扩展赋值运算:5个:+= -= *= /= %=
仅讨论+=: n+=2; ==>n=n+2
将n中的值+2后,再保存回n中
何时使用:今后只要对变量中的值进行累加时,都要用扩展赋值运算。
6. ***三目运算:根据不同的条件,多选*一*,返回不同的结果
语法:条件1?值1:
条件2?值2:
...?...:
默认值;
无论三目运算多么复杂,结果只能是一个值。
1. 算数运算符:++ --
2. 关系运算
3. 位运算——了解
4. 赋值运算
5. 三目运算
1. ***算数运算:仅++
++:将当前变量中的值递增1
比如:n++; ++n; <==> n=n+1;
何时使用:今后,只要对变量中的值递增1,还存回变量中
3种情况:n++单独使用,前++和后++都一样
++运算参与到其他表达式中:
前++(++n):将n中的值+1,然后返回*新值*
后++(n++):将n中的值+1,然后返回*旧值*
--:将当前变量中的值递减1
比如:n-- <==>n=n-1;
2. ***关系运算:将两个值做比较:> < >= <= == !=
只能返回两个值之一:如果成立,返回true;否则返回false
隐式转换:将所有类型都转为number类型,再比较!
特殊情况:3种:
1. 两字符串做比较:依次PK每一位字符的unicode编号
只要有一位字符,分出大小,就不再比较
比如:"3">"10" -->true
"Smith">"Scott" -->true
"m" "c"
109 99
2. NaN: NaN和任何数据做大小或等于比较永远返回false
NaN和任何数据做*不等于*比较,永远返回true
isNaN(num):专门判断num是否是NaN
如果是NaN返回true,否则返回false
When:今后只要判断一个数值是否是数字或能否被转为数字,都用isNaN。如果是数字,返回false!否则返回true
3. undefined vs null
undefined == null true
===: 全等:数据类型要相同,再比较值是否相等
不带隐式转换
何时使用:只要不希望关系运算中自动隐式转换时
3. ***逻辑运算:综合多个关系运算的结果得出最终结论
隐式类型转换:自动将每个条件转为Boolean类型
鄙视题:
alert(4&&5);//?
alert(4||5);//?
返回值只能二选一:满足条件返回true,否则返回false
3个:
关系运算1&&关系运算2:
而且
两个条件必须都是true,才返回true,否则返回false
关系运算1||关系运算2:
或者
只要有一个条件为true,则返回true
只有两个条件都为false时,才返回false
!关系运算:颠倒关系运算的true/false结果
***短路逻辑:如果前一个条件已经可以得出结论,
则后续条件不再执行!
***利用短路逻辑:2种:
1. 利用&&的短路逻辑:
关系运算&&操作:只有满足关系运算时,才执“操作”
2. 利用||的短路逻辑:
关系运算||操作:如果前一个条件不满足,才执行后一个"操作"
4. 位运算:2个
左移:n<<m 将n的二进制,左移m位
比如:1<<3 -->1* 2的3次方
右移:n>>m 将n的二进制,右移m位
比如:64>>3 -->64/ 2的3次方 ==> 8
5. 扩展赋值运算:5个:+= -= *= /= %=
仅讨论+=: n+=2; ==>n=n+2
将n中的值+2后,再保存回n中
何时使用:今后只要对变量中的值进行累加时,都要用扩展赋值运算。
6. ***三目运算:根据不同的条件,多选*一*,返回不同的结果
语法:条件1?值1:
条件2?值2:
...?...:
默认值;
无论三目运算多么复杂,结果只能是一个值。