作家
登录

JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)

作者: 来源:www.28hudong.com 2013-03-30 00:32:43 阅读 我要评论

2.9.5、加性运算符   加性运算符(即加号和减号)通常是最简单的运算符,不过在ECMAScript中,每个加性运算符都有大量的特殊行为。   1、加法运算符: 复制代码 代码如下: var iResult=1+2; console.log(iResult);//outputs 3 特殊性: 某个运算数是NaN,结果为NaN Infinity加Infinity,结果为Infinity -Infinity加-Infinity,结果为-Infinity Infinity加-Infinity,结果为NaN 如果两个运算数都是字符串,把第二个字符串连接到第一个字符串上 如果只有一个运算数是字符串,把另一个运算数转换为字符串,结果是两个字符串连接成的字符串   示例: 复制代码 代码如下: var iResult2=NaN+1; console.log(iResult2);//NaN var iResult3=Infinity+Infinity; console.log(iResult3);//Infinity var iResult4=-Infinity-Infinity; console.log(iResult4);//-Infinity var iResult5="abc"+"bcd"; console.log(iResult5);//abcbcd var iResult6=5+"5"; console.log(iResult6);//55 2、减法运算符: 复制代码 代码如下: var iResult=2-1; console.log(iResult);//1 特殊性: 某个运算数是NaN,结果为NaN Infinity减Infinity,结果为NaN -Infinity减-Infinity,结果为NaN Infinity减-Infinity,结果为Infinity -Infinity减-Infinity,结果为-Infinity 如果两个运算数都是字符串,结果为NaN 如果只有一个运算数是字符串,把字符串转换为数字再进行运算   示例: 复制代码 代码如下: var iResult2=NaN-1; console.log(iResult2);//NaN var iResult3=Infinity-Infinity; console.log(iResult3);//NaN var iResult4=-Infinity-(-Infinity); console.log(iResult4);//NaN var iResult5=-Infinity-Infinity; console.log(iResult5);//-Infinity var iResult6=Infinity-(-Infinity); console.log(iResult6);//Infinity var iResult7="abc"-"a"; console.log(iResult7);//NaN var iResult8="5"-5; console.log(iResult8);//0 var iResult9="a"-5; console.log(iResult9);//NaN 2.9.6、关系运算符   关系运算符<、>、<=、>=执行的是两个数字的比较运算,返回的是一个Boolean值。如果两个操作数都是字符串,则逐一比较两个字符串的ASC码,如果只有一方是字符串,则把字符串转换为数字后比较,示例如下: 复制代码 代码如下: var bResult=2<1; console.log(bResult);//false var bResult="B"<"a"; console.log(bResult);//true var bResult="b"<"a"; console.log(bResult);//false var bResult="13"<"2"; console.log(bResult);//true var bResult=13<"2"; console.log(bResult);//false var bResult=-1<"a"; console.log(bResult);//false 第17行的代码中,"a"被转换为数字时返回的是NaN,任何包含NaN的关系运算都要返回false。 2.9.7、等性运算符   1、等号和非等号   在ECMAScript中,等号(==)及非等号(!=)都返回Boolean值。为确定两个运算数是否相等,这两个运算数都会进行类型转换,转换规则如下: 如果一个运算数是Boolean值,在检查相等性之前,把它转换成数字值。false转换成0,true转换成1。 如果一个运算数是字符串,另一个运算数是数字,在检查相等性之前,要尝试把字符串转换成数字。 如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。 如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。   在进行比较时,运算符还遵循还列规则: 值null和undefined相等 在检查相等性时,不能把null和undefined转换成其他值。 如果某个运算数是NaN,等号将返回false,非等号将返回true。重要提示:即使两个运算数都是NaN,等号仍返回false,因为根据规则,NaN不等于NaN。 如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数把向同一个对象,那么等号返回true,否则两个运算数不等。   示例: 复制代码 代码如下: console.log(null==undefined);//true console.log("NaN"==NaN);//false console.log(5==NaN);//false console.log(NaN==NaN);//false console.log(NaN!=NaN);//true console.log(false==0);//true console.log(true==1);//true console.log(true==2);//false console.log(undefined==0);//false console.log(null==0);//false console.log("5"==5);//true 2、全等号和非全等号   等号和非等号的同类运算符是全等号和非全等号。这两个运算符所做的与等号和非等号相同,只是它们在检查相等性前,不执行类型转换。全等号由三个等号(===)表示,非全等号由感叹号加两个等号(!==)表示,只有在无需类型转换运算数就相等的情况下,才返回true。例如: 复制代码 代码如下: console.log("55"==55);//true console.log("55"===55);//false console.log("55"!=55);//false console.log("55"!==55);//true 2.9.8、条件运算符   条件运算符跟其他语言中的相同:varialbe=boolean_expression?true_value:false_value;   示例: 复制代码 代码如下: function Max(iNum1,iNum2){ return iNum1>=iNum2?iNum1:iNum2; } console.log(Max(1,3));//3 console.log(Max(3,1));//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;   逗号运算符最常用于变量声明中。

  推荐阅读

  使用UglifyJS合并/压缩JavaScript的方法

build.js中的代码会去调用UglifyJS的接口函数以执行压缩任务。 1,去github下载最新的UglifyJS。两种方式下载,如果安装了git,进入git控制台使用如下命令 git clone git://github.com/mishoo/UglifyJS.git 或者使>>>详细阅读


本文标题:JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)

地址:http://www.17bianji.com/kaifa2/JS/23597.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)