JavaScript高级程序设计阅读笔记(五) ECMAScript中(2)


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

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wdjgdp.html