您的位置:首页 > Web前端 > JavaScript

JS基础语法2之运算符

2016-05-08 21:34 267 查看
[size=large]1. 算术运算符[/size](JS基础语法1)
[size=large]2. 关系运算符[/size]
a) 包含:==等于,===全等于,>大于,>=大于等于,<小于,<=小于等于,!=不等于,!==不全等于
b) 结果是boolean类型
c) ===首先比较操作数类型,类型相同再比较值
==仅比较值,可能会有类型转换

[size=large]3. 逻辑运算符[/size]
a) 操作数建议是boolean类型,否则涉及到类型转换
b) &&(且):要求2个操作数的结果都是true才得到true
c) ||(或):只要1个操作数结果为true即得到true
d) !(非):操作数是true(/false)则结果是false(/true)
e) “短路”含义:
&&运算中,如果第一个操作数的结果是false则不再计算第二个操作数;
||运算中,如果第一个操作数结果为true则不再计算第二个操作数
eg:
var a=2,b=3,c=5;
var d=a>b&&++b<c; [color=green] //b=3[/color]
F 且 不算

var a=2,b=3,c=5;
var d=a<b&&++b<c; [color=green]//b=4[/color]
T 且

var a=2,b=3,c=5;
var d=a>b || ++b<c; [color=green]//b=4[/color]
F 或

var a=2,b=3,c=5;
var d=a<b || ++b<c; [color=green]//b=3[/color]
T 或 不算

[size=large]4. 位操作运算符[/size](将数值转换为二进制后逐位进行相应运算)
a) 按位与“&”
b) 按位或“|”
c) 按位异或“^”:相同为0,不同为1
d) 按位取反“~”:包括符号位,(整数前提下)相当于取负再减1
eg:
var a=5,b=7; a: 0101
var c=a&b; b: 0111
c: 0101
[color=green]//c=5[/color]

var a=5,b=7; a: 0101
var c=a|b; b: 0111
c: 0111
[color=green]//c=7[/color]

var a=5,b=7; a: 0101
var c=a^b; b: 0111
c: 0010
[color=green]//c=2[/color]

var a=5,b=7; a: 0101
var c=~a; c: 1010(补码)
1001(反码)
1110(原码)
[color=green]//c=-6(5*(-1)-1=-6)[/color]

[size=large]5. 位移运算符[/size]
a) 左移<<:
在不影响符号位的前提下,每左移一位相当于乘以2;
移动位数不应该超过32,否则实际移动位数要对32进行模运算(移动33位相当于移动1位)
b) 右移>>:
(每右移一位相当于除以2再取整,取不大于商的整数),最高位填充符号位
c) 无符号右移>>>:
最高位填充0,如果为整数与>>相同,如果是负数则变成整数
[size=large]6. 条件运算符“? :”[/size]
此运算符是唯一一个需要3个操作数;
判断?前面的表达式(保证表达式结果是boolean)是否成立,成立则返回:前面表达式的结果,不成立则返回:后面表达式的结果
[size=large]7. 赋值运算符[/size]“=”与其他运算符搭配
[size=large]8. 运算符优先级:[/size]
按以下规则:(共15级优先级)
i. 先看操作数数量,数量少的先运算;
1个操作数的有:算术减法表负数-a、自增自减、逻辑运算非!、位操作运算取反~
3个操作数:?:
ii. 再看运算符类型,算术>位移>关系>位运算>逻辑
iii. 赋值总是最低,尽量使用括号明确运算优先级。 阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: