前端入门——JavaScript 操作符( 二 )


let a = 64;// 二进制 1000000let b = b >> 5; // 二进制的 10,十进制的2在移位过程,原数中也会出现空位,只不过这次空位出现在原数值左侧、符号位右侧 。空位使用符号位值填充 。

有符号的整数,指32位中前31位表示整数的值,第32位表示数值的符号,0正数,1负数 。这个表示符号的位就是符号位 。
无符号的右移
使用(>>>)三个大于号表示,这个操作会将所有32位都向右移动 。对于正数其结果和有符号的右移一样,如下示例:
let a = 64;// 二进制 1000000let b = b >>> 5; // 二进制的 10,十进制的2但是负数就不一样了,无符号的右移是以0来填充空位,不像有符号右移使用符号位填充 。所以其结果相差很大,如下示例:
let a = -64;// 二进制 1111 1111 1111 1111 1111 1111 1100 0000let b = b >>> 5; // 二进制 0000 0111 1111 1111 1111 1111 1111 1110 ,十进制的134217726布尔操作符在任何编程语言中,布尔操作符都是非常重要的,它是用来判断逻辑的关键,布尔操作符一共有三种:非(NOT)、与(AND)、或(OR) 。
逻辑非
使用(!)感叹号表示逻辑非,其规则就是:
操作符
逻辑值
结果

true
false

false
true
逻辑与
使用(&&)表示,操作两个数,如下示例:
let a = ture && false;其规则如下:
逻辑值1
操作符
逻辑值2
结果
ture
&&
ture
ture
ture
&&
false
false
false
&&
ture
false
false
&&
false
false
也就是只有当2个数值都是true时其结果才是true 。
逻辑或
使用(||)符号表示,也是有两个操作数,其示例:
let a = true || false;规则如下:
逻辑值1
操作符
逻辑值2
结果
ture
||
ture
ture
ture
||
false
ture
false
||
ture
ture
false
||
false
false
也就是2个操作数中有一个true,结果就是true,负则是false 。
注意布尔操作符,不仅仅可以操作布尔类型值,对于其它数据类型同样适用,只不过会先将其它数据类型转换成布尔值,再进行布尔运算 。如下示例:
let a = !1; //输出falselet b = !'string'; // 输出falselet c = 1 || 0; // 输出truelet e = 1 && 0;// 输出falselet d = ''&& 2; // 输出true关系操作符关系操作符用来比较2个操作数,有小于(<)、大于(>)、小于等于(<=)和大于等于(>=) 。其比较的结果返回一个布尔值,true或false 。
如下示例:
let a = 5 > 3; // truelet b = 5 < 3; // false同样,关系操作符也可以适用其它类型的数据,比如字符串比较大小时,会按照字符的编码大小比较 。如下示例:
let a = "Brick" < "alphabet"; // true,上面中因为B字符编码是66,a的编码是97,所以返回true 。
相等、不等操作符在编程中,确定2个值是否相等是一个非常重要的操作 。在JavaScript中分相等(==)和全等(===)、不等(!=)和不全等(!==)四种 。
相等(==)和不相等(!=)
如下示例:
let a = 1 == 1; // truelet b = 1==0;// falselet c = 1!=1; // falselet d = 1!=0; //true注意相等和不相等的操作前会先对操作性进行强制转换,如下示例:
let a = true == 1; // 先将true转换成1再比较,结果是truelet b = false == 1; // 先将false转换成0再比较,结果是false全相等(===)和不全相等(!==)
全等和不全等不同之处是,它在比较数据前,不进行数据类型转换,是对原始数值比较,所以它的结果更加严格准确,如下示例:
let a = 1 === 1; // truelet b = 1=== '1';// falselet c = 1!==1; // falselet d = 1!=='1'; //true注意和之前相等和不相等的例子比较,其结果非常不一样 。
赋值操作符使用(=)表示赋值操作,其作用就是把等号右侧的值赋值给左边的变量或属性,如下示例:
let a = 10; // 给a变量赋值10如果在等号前面加上其它操作符,就组成了复合型赋值操作,如下示例:


推荐阅读