var iOld=2;
var iOld1=64;
var iOld2=64;
var iOld3=-2;
var iNew=iOld<<5;
var iNew1=iOld1>>5;
var iNew2=iOld2>>>5;
var iNew3=iOld3>>>1;
console.log(iNew); //outpus 64
console.log(iNew1); //outpus 2
console.log(iNew2); //outpus 2
console.log(iNew3); //outpus 2147483647
负数iOld3无符号右移的计算方法如下:
先把-2转换成无符号的等价形式,即-2的二进制补码:
-2的非负版本二进制表示:0000 0000 0000 0000 0000 0000 0000 0010
该二进制的反码:1111 1111 1111 1111 1111 1111 1111 1101
在二进制反码上加1:1111 1111 1111 1111 1111 1111 1111 1110
最后再右移一位:0111 1111 1111 1111 1111 1111 1111 1111 即为:2147483647
2.9.3 Boolean运算符
1、逻辑NOT:由(!)表示,返回值一定是Boolean值,行为如下:
如果运算数是对象,返回false
如果运算数是数字0,运回true
如果运算数是0以外的任何数字,反回false
如果运算数是null,返回true
如果运算数是NaN,返回true
如果运算数是undefined,发生错误
2、逻辑AND:由(&&)表示,如果运算数均为Boolean型,只有当运算数均为true时才返回true,否则返回false。AND运算的运算数可以是任何类型,返回值不一定是Boolean值:
如果一个运算数是对象,另一个是Boolean值,返回该对象
如果两个运算数都是对象,返回第二个对象
如果某个运算数是null,返回null
如果某个运算数是NaN,返回NaN
如果某个运算数是undefined,发生错误
ECMAScript中的逻辑AND也是简便运算,即如果第一个运算数决定了结果,就不再计算第二个运算数,示例:
复制代码 代码如下:
var bFalse=false;
var bResult=bFalse&&bUnknow;
console.log(bResult); //outpus false
var bTrue=true;
var bResult=bTrue&&bUnknow;
console.log(bResult); //outpus ReferenceError: bUnknow is not defined
3、逻辑OR运算符:由(||)表示,如果运算数均为Boolean型,只有当运算数均为false时才返回false,否则返回true。OR运算的运算数可以是任何类型,返回值不一定是Boolean值:
如果一个运算数是对象,另一个是Boolean值,返回该对象
如果两个运算数都是对象,返回第一个对象
如果某个运算数是null,返回null
如果某个运算数是NaN,返回NaN
如果某个运算数是undefined,发生错误
ECMAScript中的逻辑OR也是简便运算,即如果第一个运算数决定了结果,就不再计算第二个运算数,示例:
复制代码 代码如下:
var bTrue=true;
var bResult=bTrue||bUnknow;
console.log(bResult); //outpus true
var bFalse=false;
var bResult=bFalse||bUnknow;
console.log(bResult); //outpus ReferenceError: bUnknow is not defined
2.9.4 乘性运算符
1、乘法运算符:由(*)表示,正常情况下跟数学中的乘法相同,特殊情况下有些特殊值:
如果运算的结果太大或太小,生成结果为Infinity或-Infinity
如果某个运算数是NaN,结果为NaN
Infinity乘以0,结果为NaN
Infinity乘以0以外的任何数字,结果为Infinity或-Infinity,由第二个运算数的符号决定
Infinity乘以Infinity,结果为Infinity
2、除法运算符:由(/)表示,正常情况下跟数学中的乘法相同,特殊情况下有些特殊值:
如果运算的结果太大或太小,生成结果为Infinity或-Infinity
如果某个运算数是NaN,结果为NaN
Infinity被Infinity除,结果为NaN
Infinity被任何数字除,结果为Infinity
0除以一个非无穷大的数字,结果为NaN
Infinity被0以外的任何数字除,结果为Infinity或-Infinity,由第二个运算数的符号决定
3、取模运算符:由(%)表示,正常情况下跟数学中的乘法相同,特殊情况下有些特殊值:
如果被除数是Infinity,或者除数是0,结果为NaN
Infinity被Infinity除,结果为NaN
如果除数是无穷大的数,结果为被除数
如果被除数为0,结果为0
您可能感兴趣的文章: