Javascript知识架构学习路径(二)运算符篇_第1页
Javascript知识架构学习路径(二)运算符篇_第2页
Javascript知识架构学习路径(二)运算符篇_第3页
Javascript知识架构学习路径(二)运算符篇_第4页
Javascript知识架构学习路径(二)运算符篇_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京优才创智科技有限公司前端文章Javascript知识架构学习路径(二)运算符篇Charles 2016.6【摘要】本文是写给一位Javascript入门学习者进行学习总结的,总体上将Javascript的基础部分分成了九大块,分别是变量、运算符、数组、流程控制结构、字符串函数、函数基础、DOM操作基础、文档对象模型DOM和正则表达式。【关键字】变量、运算符、数组、流程控制结构、函数、DOM、正则表达式。在上一篇文章中,我们讨论了JS中的变量,今天的文章,我将与大家一起来全面系统地总结一下我们JS中的运算符。在JS中,运算符大致可以分为算术运算符、关系运算符、逻辑运算符、位运算符、对象运算符

2、、自加与自减及其他的一些运算符,其中位运算符会做专题小结,在此文中就不详述。下面我们就一一来回顾。1、 算术运算符算术运算符主要包括:+、-、*、/、%,除了这五个之外还有复合运算符,具体有+=、-=、*=、/=和%=,下面我们就具体来讨论一下各个运算符在用法上需要注意的问题。1、 +这个运算符比较特殊,它除了可以做算术运算中的加法运算之外,还可以做字符串的连接运算,同时,它还有一个比较特殊的用法,也就是它可以将一个数值转换成字符串。(1) 对数字进行加法求和,如:3+2,得到的结果为5;(2) 对字符串进行连接操作,又如“今天”+“好天气”,得到的结果为“今天好天气”;(3) 字符串转换,这

3、种用法比较特殊,要注意写法,如5+“”,得到的结果是“5”,一般都是将数字写在前面,后面直接通过“+”连接一个空字符串,这样就可以将数字转换成字符串了。 “+”在做字符串拼接时,又分两种情况,第一种就是简单的两个字符串拼接,如“JS”+“运算符”,得到的结果为“JS运算符”,另一种情况是字符串+数值,当出现这种情况的时候,JS会自动将数值转换成字符串,然后再与“+”左边的字符串做拼接操作,比如“幸运数字:”+5,得到的结果是“幸运数字:5”。2、 -这个运算符与“+”相比,也有自身的特点,它所能实现的运算主要包括以下三个方面:(1) 对数字进行减法操作;(2) 对操作数进行取反操作;(3) 将

4、字符串转换成数值,它与“+”号的区别是,在书写格式方面,“-”在转换的时候,写法是:数值型字符串-0。3、 * “*”运算符在使用的时候只有一个功能,那就是对两个数进行乘法运算;4、 / “/”运算符与“*”类似,也只有一个功能,那就是对两个数进行除法运算;5、 %“%”运算符称为取模运算符,计算的结果是两个数做除法运算后,取余数。算术运算符除了上面所列举的五个之外,还有一种叫做复合运算符,具体有+=、-=、*=、/=和%=,功能与基本的算术运算符类似。2、 关系运算符关系运算符在功能上分为两大类,其一,大小关系检测运算,其二,等值关系检测运算,下面,就这两种功能我们分别进行小结。1、大小关系

5、检测大小关系检测主要就是判断两个操作数之间的大小关系,其主要包括两个方面,一方面就是运算符本身,另一方面就是运算符的操作规则。(1)运算符“<”,如“A<B”,如果A是小于B的,那么结果为true,反之,结果为false;“>”,如“A>B”,如果A是大于B的,那么结果为true,反之,结果为false;“<=”,如“A<=B”,如果A是小于或等于B的,那么结果为true,反之,结果为false;“>=”,如“A>=B”,如果A是大于B的,那么结果为true,反之,结果为false;(2) 操作规则当运算符是两个数值的比较时,所执行的操作是比较它

6、们的代数值,如“3>2”,那么返回的结果为true;当运算符的两侧一个是数值,一个是非数值时,会将非数值操作数转换成数值,然后再进行代数值比较,如“3>2”,得到的结果也为true;如果是两个字符串之间的比较,那么会逐字符比较它们的Unicode数值;如果是字符串与非数值之间的比较,那么会将运算数转换成字符串,然后再进行比较;如果运算数既非数值也非字符串,那么会先将运算数转换成数值或字符串再进行比较;如果运算数无法被转换成数值或字符串时,则直接返回结果false;如果是与NaN进行比较,也是直接返回结果false。2、 等值关系检测等值关系检测运算符又分两种情况,分别是相等比较和相

7、同比较,下面就具体来看看,这两种情况的具体内容:(1)相等比较操作符主要有两个:=和!=。主要是比较两个运算数返回值是否相等;比较的原则:如果是null与undefined比较,结果是相等的;如果是NaN,它与任何数比较的结果都是不相等的,包括与自身比较;如果是对象的比较,同一对象的结果为相等,不同对象的结果为不等。(2) 相同比较运算符主要有:=和!=。比较两个运算数的返回值及数据类型是否相同。比较的原则:如果是值类型间的比较,只有数据类型相同时,且数值相等的情况下才能相同;如果是值类型与引用类型之间的比较,那么结果肯定是不相同的;如果是引用类型之间的比较,比较的是它们的引用值。3、 逻辑运

8、算符逻辑运算符主要有三个,逻辑与(&&)、逻辑或(|)和逻辑非(!)。下面我们就分别对这三个运算符从特性和规则来进行小结。1、 &&逻辑与运算,我们使用的是“&&”运算符,其使用规则有如下几点:(1) 如果第一个操作数是对象,则直接返回第二个操作数;(2) 如果第二个操作数是对象,第一个操作数值为true时,则直接返回第二个操作数,即对象;(3) 如果两个操作数都是对象,则返回第二个操作数;(4) 如果有一个操作数是null,则直接返回null;(5) 如果有一个操作数是NaN,则直接返回NaN;(6) 如果有一个操作数是undefined,也将

9、直接返回undefined。 作为逻辑与运算,它的特性有两点,其一,当且仅当两个运算数的值都为true时,才返回true,否则将返回false;其二,当第一个操作数返回值为false,那么将不会再对后续的操作数进行判断,这个特性又称为短路。2、|逻辑或运算,我们使用的是“|”运算符,其使用规则有如下几点:(1) 如果第一个操作数是对象,则返回第一个操作数;(2) 如果第一个操作数为false,则返回第二个操作数;(3) 如果两个操作数都是对象,则返回第一个操作数;(4) 如果两个操作数都是null,则返回null;(5) 如果两个操作数都是NaN,则返回NaN;(6) 如果两个操作数都是und

10、efined,则返回undefined。 作为逻辑或运算,其特性也有两点,首先,当且仅当两个运算数的值都为false时,才返回false,否则,返回true;其次,也是所谓的短路,即如果第一个操作数为true,则不会再对后续的操作数进行判断。3、 !逻辑非运算,用的是“!”运算符,它的特性还是两点,第一,如果运算数的值为false,则返回true,若为true,则返回false;其二,如果连续使用两次非运算符,则可以将任意类型转换成布尔型值。 4、 对象运算符对象运算符主要包含以下六类:1、 in in运算符主要是判断左侧运算数是否为右侧运算数的成员;2、 instancesof instan

11、cesof主要用来判断对象实例是否属于某个类或者构造函数;3、 new new主要是根据构造函数创建一个新的对象,并初始化这个对象;4、 delete delete主要是用来删除指定对象的属性,数组元素或变量;5、 .和 .与 主要是用来存取对象和数组元素;6、 ( ) ()主要是用作函数调用,或改变运算的优先级。5、 自加与自减自加和自减运算符是一元运算符,主要是对唯一的运算数进行自加或者自减操作。其使用规则主要包括以下两点:1、 运算数必须是一个变量、数组的一个元素或者对象的属性;2、 如果运算数是非数值的,那么会自动转换成数值。当然,自加与自减运算符还有一些特性,比如,运算符是前缀还是后缀,这将直接决定运算的结果。如果是在运算数的前面作为前缀的话,所实现的操作是先进性自加或自减操作,然后再进行求值;如果是在运算数的后面作为后缀的话,其实现的操作是先求值后,再进行自加或自减操作。6、 其他在JS中,其他的运算符主要包括 ? : 、typeof、逗号和void。1、 ? :该运算符是条件运算符,其作用相当于一个标准的双分支结构;2、 typeof

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论