JavaScript高端程序设计阅读笔记
分类:pc28.am

2.9.5、加性运算符 加性运算符经常是最简便的运算符,可是在ECMAScript中,每个加性运算符都有雅量的非正规表现。 1、加法运算符: 复制代码 代码如下: var iResult=1 2; console.log;//outputs 3 特殊性: 有个别运算数是NaN,结果为NaN Infinity加Infinity,结果为Infinity -Infinity加-Infinity,结果为-Infinity Infinity加-Infinity,结果为NaN 假使五个运算数都以字符串,把第一个字符串连接到第一个字符串上 借使唯有一个运算数是字符串,把另四个运算数转变为字符串,结果是四个字符串连接成的字符串 示例: 复制代码 代码如下: var iResult2=NaN 1; console.log;//NaN var iResult3=Infinity Infinity; console.log;//Infinity var iResult4=-Infinity-Infinity; console.log;//-Infinity var iResult5="abc" "bcd"; console.log;//abcbcd var iResult6=5 "5"; console.log;//55 2、减法运算符: 复制代码 代码如下: var iResult=2-1; console.log;//1 特殊性: 有个别运算数是NaN,结果为NaN Infinity减Infinity,结果为NaN -Infinity减-Infinity,结果为NaN Infinity减-Infinity,结果为Infinity -Infinity减-Infinity,结果为-Infinity 借使多个运算数都以字符串,结果为NaN 若是独有五个运算数是字符串,把字符串转变为数字再开展览演出算 示例: 复制代码 代码如下: var iResult2=NaN-1; console.log;//NaN var iResult3=Infinity-Infinity; console.log;//NaN var iResult4=-Infinity-; console.log;//NaN var iResult5=-Infinity-Infinity; console.log;//-Infinity var iResult6=Infinity-; console.log;//Infinity var iResult7="abc"-"a"; console.log;//NaN var iResult8="5"-5; console.log;//0 var iResult9="a"-5; console.log;//NaN 2.9.6、关系运算符 关系运算符、<=、>=推行的是多少个数字的可比运算,重返的是二个Boolean值。假设五个操作数都以字符串,则相继比较八个字符串的ASC码,假诺只有一方是字符串,则把字符串调换为数字后相比较,示比如下: 复制代码 代码如下: var bResult=2<1; console.log;//false var bResult="B"复制代码 代码如下: console.log;//true console.log;//false console.log;//false console.log;//false console.log;//true console.log;//true console.log;//true console.log;//false console.log;//false console.log;//false console.log;//true 2、全等号和非全等号 等号和非等号的同类运算符是全等号和非全等号。那三个运算符所做的与等号和非等号相像,只是它们在自己研商相等性前,不实施类型转变。全等号由多少个等号表示,非全等号由惊讶号加四个等号表示,独有在没有必要类型转变运算数就等于的动静下,才回去true。比方: 复制代码 代码如下: console.log;//true console.log;//false console.log;//false console.log;//true 2.9.8、条件运算符 条件运算符跟其余语言中的雷同:varialbe=boolean_expression?true_value:false_value; 示例: 复制代码 代码如下: function 马克斯{ return iNum1>=iNum2?iNum1:iNum2; } console.log;//3 console.log;//3 2.9.9、赋值运算符 轻巧的赋值运算符由等号达成,只是把等号侧边的值授予等号左侧的变量,比方: var iNum=10; 复合赋值运算是由乘性运算符、加性运算符或位移运算符加等号完结的。这么些赋值运算符是下列这么些科学普及意况的缩写方式: 复制代码 代码如下: var iNum=10; iNum=iNum 10; //等同于 var iNum=10; iNum =10; 每一种首要的算术运算及其余多少个运算都有复合赋值运算符: 乘法/赋值 取模/赋值 减法/赋值 有号子右移/赋值 2.9.10、逗号运算符 用逗号运算符能够在一条语句中试行多少个运算。举个例子: var iNum=1,iNum2=2,iNum3=3; 逗号运算符最常用于变量注脚中。

2.9 运算符
2.9.1、一元运算符
  一元运算符唯有多少个参数,即要操作的靶子或值。

  1、delete:删除对原先定义的对象属性或方式的援引,但此运算符不可能去除开垦者未定义的性质和格局。示例:

复制代码 代码如下:

var o=new Object;
o.name="Nicholas";
o.show=function(){
return "test";
};
console.log(o.name); //outpus Nicholas
console.log(o.show()); //outpus test

delete o.name;
delete o.show;

console.log(o.name); //outpus undefined
console.log(o.show()); //outpus TypeError: o.show is not a function

delete o.toString;
console.log(o.toString()); //outpus [object Object]

2、void:对此外值都再次回到undefined,该运算符平时用于防止输出不应有出口的值。

  如在链接中开荒新窗口,代码如下:

<a href="javascript:window.open('about:blank')">Click Me</a>
  点击链接后会在新窗口中现身[object]。那是因为window.open()方法再次回到了对新开发窗口的引用。然后该目的将被调换来要出示的字符串。要防止这种结果,能够用void运算符调用window.open()函数:

<a href="javascript:void(window.open('about:blank'))">Click Me</a>
  3、前增量/前减少数量运算符:从C中借用的多个运算符。示例:

复制代码 代码如下:

var iNum=10;
console.log( iNum); //outpus 11 same as iNum=iNum 1
console.log(iNum); //outpus 11
console.log(--iNum); //outpus 10 same as iNum=iNum-1
console.log(iNum); //outpus 10

4、后增量/后减少数量运算符:从C中借用的三个运算符。与前增量/前减少数量相通,也是给数值加1或减1,分歧的是后缀式运算符是在总结过含有它们的表明式后才实行增量或减少数量运算的。示例:

复制代码 代码如下:

var iNum=10;
iNum--
console.log(iNum); //outpus 9
console.log(iNum--); //outpus 9
console.log(iNum); //outpus 8
iNum
console.log(iNum); //outpus 9
console.log(iNum ); //outpus 9
console.log(iNum); //outpus 10

 5、一元加法和一元减法:用法与高级中学数学中学到的用法相像,一元加法对数字无别的影响,一元减法就是对数值求负。但一元回法和一元减法对字符串实行演算时与parseInt()相近,首要的差异是唯有对以"ox"开端的字符串,一元运算符才把它调换为10进制的值。示例:

复制代码 代码如下:

var iNum=25;
iNum= iNum;
console.log(iNum); //outpus 25

var sNum="50";
console.log(typeof sNum); //outpus string
console.log( sNum); //outpus 50
console.log(typeof sNum); //outpus number

var sNum1="017";
var sNum2="0xB";
console.log(-sNum1); //outpus -17
console.log(-sNum2); //outpus -11

2.9.2 位运算符
  1、位运算NOT:由(~)表示,管理进度如下:

  (1) 把运算数转变为三十四个人数字

  (2) 把二进制方式转变到它的二进制反码;

  (3) 把二进制反码转变为浮点数

  示例:

复制代码 代码如下:

var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=~iNum1; //conver to 1111 1111 1111 1111 1111 1111 1110 0110
console.log(iNum2); //outpus -26

//位运算符NOT实质上是对数字求负,然后减1,因而下边包车型大巴代码也得以博得意气风发致的效应
var iNum3=25;
var iNum4=-iNum3-1;
console.log(iNum4);

2、位运算AND:由(&)表示,直接对数字的二进制情势举行总括。准则为全为1才为1,不然为0。示例:

复制代码 代码如下:

var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1&3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
console.log(iNum2); // and is 0000 0000 0000 0000 0000 0000 0000 0001 outpus 1

  3、位运算OWrangler:由(|)表示,直接对数字的二进制方式展开计算。准则为全为0才为0,不然为1。示例:

复制代码 代码如下:

var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1|3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011

  4、位运算XO福睿斯:由(^)表示,间接对数字的二进制格局开展总括。法规为唯有一个数位存放的是1时才为1,否则为0。示例:

复制代码 代码如下:

var iNum1=25; //25 is equal to 0000 0000 0000 0000 0000 0000 0001 1001
var iNum2=iNum1^3; // 3 is equal to 0000 0000 0000 0000 0000 0000 0000 0011
console.log(iNum2); // xor is 0000 0000 0000 0000 0000 0000 0001 1010 outpus 26

  5、左移运算:由(<<)表示,把数字中的全体数位向左移动钦赐的多少,保留符号位,左移壹位相当于乘以2。
  6、有暗号右移运算:由(>>)表示,把数字中的全数数位向右移动内定的多少,保留符号位,右移壹人相当于除以2。
  7、无符号右移运算:由(>>>)表示,把数字中的全数数位向右移动钦命的多少。对李林数跟有号子的右移完全相通,对于负数作为正数来管理。
  示例:

复制代码 代码如下:

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值,重返该指标
  假使多少个运算数都以目的,再次来到第4个对象
  倘若有个别运算数是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、逻辑O奥迪Q5运算符:由(||)表示,若是运算数均为Boolean型,唯有当运算数均为false时才重回false,不然重临true。O讴歌ZDX运算的运算数能够是其余类型,再次回到值不自然是Boolean值:
  若是四个运算数是指标,另八个是Boolean值,重返该对象
  即使八个运算数都是指标,重临第多少个指标
  假使某些运算数是null,重回null
  假如有些运算数是NaN,再次来到NaN
  假如有个别运算数是undefined,产生错误
  ECMAScript中的逻辑O奔驰G级也是方便运算,即只要第三个运算数决定了结果,就不再计算第三个运算数,示例:

复制代码 代码如下:

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个运算数的暗记决定
  3、取模运算符:由(%)表示,符合规律情况下跟数学中的乘法相符,特殊意况下有个别异样值:
  要是被除数是Infinity,大概除数是0,结果为NaN
  Infinity被Infinity除,结果为NaN
  若是除数是无穷大的数,结果为被除数
  假如被除数为0,结果为0

运算符 2.9.1、一元运算符 一元运算符只有一个参数,即要操作的指标或值。 1、delete:删除对早前定义的对象属性或措施的援用,但此运...

本文由pc28.am发布于pc28.am,转载请注明出处:JavaScript高端程序设计阅读笔记

上一篇:ReactNative入门求学笔记,JavaScript高端程序设计 下一篇:没有了
猜你喜欢
热门排行
精彩图文