资源描述
Javascript知识架构学习路径(二)
——运算符篇Charles 2016.6
【摘要】本文是写给一位Javascript入门学习者进行学习总结的,总 体上将Javascript的基础局部分成了九大块,分别是变量、运算符、 数组、流程控制结构、字符串函数、函数基础、DOM操作基础、文 档对象模型DOM和正那么表达式。
【关键字】变量、运算符、数组、流程控制结构、函数、DOM、正 那么表达式。
在上一篇文章中,我们讨论了 JS中的变量,今天的文章,我将 与大家一起来全面系统地总结一下我们JS中的运算符。
在JS中,运算符大致可以分为算术运算符、关系运算符、逻辑 运算符、位运算符、对象运算符、自加与自减及其他的一些运算符, 其中位运算符会做专题小结,在此文中就不详述。下面我们就一一来 回顾。
一、算术运算符
算术运算符主要包括:+、・、*、/、%,除了这五个之外还有复 合运算符,具体有十=、・二、*二、/二和%=,下面我们就具体来讨论一 下各个运算符在用法上需要注意的问题。
1、+
这个运算符比拟特殊,它除了可以做算术运算中的加法运算之外, 还可以做字符串的连接运算,同时,它还有一个比拟特殊的用法,也笫1页共1页 就是它可以将一个数值转换成字符串。
(1 )对数字进行加法求和,如:3+2 ,得到的结果为5 ;
(2)对字符串进行连接操作,又如〃今天〃好天气〃,得到的结果为〃今天好天气〃;
(3)字符串转换,这种用法比拟特殊,要注意写法,如5+〃 〃, 得到的结果是〃 5〃,一般都是将数字写在前面,后面直接通过〃 +〃 连接一个空字符串,这样就可以将数字转换成字符串了。
〃 +〃在做字符串拼接时,又分两种情况,第一种就是简单的两 个字符串拼接,如〃 JS〃 +〃运算符〃,得到的结果为〃 JS运算符〃, 另一种情况是字符串+数值,当出现这种情况的时候,JS会自动将数 值转换成字符串,然后再与'+〃左边的字符串做拼接操作,比方,幸 运数字r +5,得到的结果是〃幸运数字:
2、・
这个运算符与〃 +〃相比,也有自身的特点,它所能实现的运算 主要包括以下三个方面:
(1 )对数字进行减法操作;
(2)对操作数进行取反操作;
(3)将字符串转换成数值,它3+〃号的区别是,在书写格式 方面丁,在转换的时候,写法是:数值型字符串
3、*
〃 *'运算符在使用的时候只有一个功能,那就是对两个数进行 乘法运算;笫2页共2页
4、/
〃 /〃运算符与〃 *'类似,也只有一个功能,那就是对两个数进 行除法运算;
5、%
〃 %〃运算符称为取模运算符,计算的结果是两个数做除法运算 后,取余数。
算术运算符除了上面所列举的五个之外,还有一种叫做复合运算 符,具体有十二、•二、*二、/二和%二,功能与基本的算术运算符类似。
二、关系运算符
关系运算符在功能上分为两大类,其一,大小关系检测运算,其 二,等值关系检测运算,下面,就这两种功能我们分别进行小结。
1、大小关系检测
大小关系检测主要就是判断两个操作数之间的大小关系,其主要 包括两个方面,一方面就是运算符本身,另一方面就是运算符的操作 规那么。
(1 )运算符
〃 <〃,如'A<B〃,如果A是小于B的,那么结果为true,反之, 结果为false;
〃 /加 A>B〃,如果A是大于B的,那么结果为true,反之, 结果为false;
〃 <二〃,如〃 A< = B〃,如果A是小于或等于B的,那么结果为 true ,反之,结果为false ;笫3页共3页
〃 >=〃,如〃 A>=B〃,如果A是大于B的,那么结果为true ,反 之,结果为false ;
(2 )操作规那么
当运算符是两个数值的比拟时,所执行的操作是比拟它们的代数 值,如〃 3>2',那么返回的结果为true ;
当运算符的两侧一个是数值,一个是非数值时,会将非数值操作 数转换成数值,然后再进行代数值比拟,如〃 3小2 〃,得到的结果 也为true;
如果是两个字符串之间的比拟,那么会逐字符比拟它们的 Unicode数值;
如果是字符串与非数值之间的比拟,那么会将运算数转换成字符 串,然后再进行比拟;
如果运算数既非数值也非字符串,那么会先将运算数转换成数值 或字符串再进行比拟;
如果运算数无法被转换成数值或字符串时,那么直接返回结果false;
如果是与NaN进行比拟,也是直接返回结果fals已
工等值关系检测
等值关系检测运算符又分两种情况,分别是相等比拟和相同比拟, 下面就具体来看看,这两种情况的具体内容:
(1 )相等比拟
操作符主要有两个:二二和!二。主要是比拟两个运算数返回值是 否相等;笫4页共4页
比拟的原那么:如果是null与undefined比拟,结果是相等的;如 果是NaN,它与任何数比拟的结果都是不相等的,包括与自身比拟; 如果是对象的比拟,同一对象的结果为相等,不同对象的结果为不等。
(2)相同比拟
运算符主要有:二=二和!比拟两个运算数的返回值及数据类 型是否相同。
比拟的原那么:如果是值类型间的比拟,只有数据类型相同时,且 数值相等的情况下才能相同;如果是值类型与引用类型之间的比拟, 那么结果肯定是不相同的;如果是引用类型之间的比拟,比拟的是它 们的引用值。
三、逻辑运算符
逻辑运算符主要有三个,逻辑与(&& I逻辑或(|| )和逻辑非 (!X下面我们就分别对这三个运算符从特性和规那么来进行小结。
1、&&
逻辑与运算,我们使用的是〃 &&〃运算符,其使用规那么有如下 几点:
(1)如果第一个操作数是对象,那么直接返回第二个操作数;
(2)如果第二个操作数是对象,第一个操作数值为true时,那么 直接返回第二个操作数,即对象;
(3)如果两个操作数都是对象,那么返回第二个操作数;
(4)如果有一个操作数是null ,那么直接返回null ;
(5)如果有一个操作数是NaN ,那么直接返回NaN ;笫5页共5页
(6)如果有一个操作数是undefined ,也将直接返回undefinedo
作为逻辑与运算,它的特性有两点,其一,当且仅当两个运算数 的值都为true时,才返回true ,否那么将返回false;其二,当第一个操 作数返回值为false ,那么将不会再对后续的操作数进行判断,这个特 性又称为短路。
2、II
逻辑或运算,我们使用的是〃 11〃运算符,其使用规那么有如下几 点:
(1 )如果第一个操作数是对象,那么返回第一个操作数;
(2)如果第一个操作数为false ,那么返回第二个操作数;
(3)如果两个操作数都是对象,那么返回第一个操作数;
(4)如果两个操作数都是null ,那么返回null ;
(5)如果两个操作数都是NaN ,那么返回NaN ;
(6)如果两个操作数都是undefined ,那么返回undefined。
作为逻辑或运算,其特性也有两点,首先,当且仅当两个运算数 的值都为false时,才返回false ,否那么,返回true ;其次,也是所谓的 短路,即如果第一个操作数为true ,那么不会再对后续的操作数进行判 断。
3、!
逻辑非运算,用的是〃 !〃运算符,它的特性还是两点,第一, 如果运算数的值为false,那么返回true,假设为true,那么返回false ;其二, 如果连续使用两次非运算符,那么可以将任意类型转换成布尔型值。
笫6页共6页
四、对象运算符
对象运算符主要包含以下六类:
1、in
in运算符主要是判断左侧运算数是否为右侧运算数的成员;
2、instancesof
instancesof主要用来判断对象实例是否属于某个类或者构造函数;
3、new
new主要是根据构造函数创立一个新的对象,并初始化这个对象;
4、delete
delete主要是用来删除指定对象的属性,数组元素或变量;
5、利]
.与口主要是用来存取对象和数组元素;
收0
()主要是用作函数调用,或改变运算的优先级。
五、自加与自减
自加和自减运算符是一元运算符,主要是对唯一的运算数进行自 加或者自减操作。其使用规那么主要包括以下两点:
1、运算数必须是一个变量、数组的一个元素或者对象的属性;
2、如果运算数是非数值的,那么会自动转换成数值。
当然,自加与自减运算符还有一些特性,比方,运算符是前缀还 是后缀,这将直接决定运算的结果。
如果是在运算数的前面作为前缀的话,所实现的操作是先进性自笫7页共7页 加或自减操作,然后再进行求值;如果是在运算数的后面作为后缀的 话,其实现的操作是先求值后,再进行自加或自减操作。
六、其他
在JS中,其他的运算符主要包括? :、typeof.逗号和void。
1、?:
该运算符是条件运算符,其作用相当于一个标准的双分支结构;
2、typeof
typeof的作用是对操作数进行类型判断的;
3、逗号〃 7
,的作用是在一行语句中执行多个不同的操作;
4、void
void的作用是舍弃运算数的值 返回undefined作为表达式的值。
以上内容,除了位运算符会在后续的文章中单独阐述之外,基本 上涵盖了 JS中所有用到的运算符,包括各类运算符的用法、特点等 也做了相应的总结,希望能为各位带来帮助。
笫8页共8页
展开阅读全文