您现在的位置:首页 > 技术 > JavaScript知识笔记6:解读操作符

JavaScript知识笔记6:解读操作符

在JS中使用操作符主要用来执行数学、相等测试、关系测试和赋值等操作。这里需要强调的是操作符概念,简单说(可能描述不是很清楚)理解操作符能更好地解读代码,运算符是连接程序逻辑的算法符号。

2016年07月

透明伽然

JS中操作符大致分为以下几类:

加法操作符、乘法操作符、位操作符、相等操作符、关系操作符、一元操作符、赋值操作符

1.  对于数学运算包括:+-*/%。前两种属于加法操作符,后三种是乘法操作符。由于JS数字是浮点型,所以/运算结果也是浮点型。

2.  位操作符,似乎我们平时也不会用到。只是我们偶尔会在一些接触的jQuery插件源码中会看到“||”、“&&”相关使用,但是值得注意的是:&&”、“||”和下来会提及的“!,Boolean环境中常以if()判断表达式出现,解释与下面不同。

                                          

先执行操作符左侧的结果,然后尝试将其转换为boolean值,如果结果为true,则返回左侧的执行结果而不是true,如果结果为false,则执行右侧的表达式并返回结果。

等同于

关于符号“&&”, a() && b() :如果执行a()后返回true,则执行b()并返回b的值;如果执行a()后返回false,则整个表达式返回a()的值,b()不执行。

3.  相等操作符是用来测试两个表达式是否相同,始终返回布尔值:truefalse

== != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果。

=== !== 只有在相同类型下,才会比较其值。

4.  关系操作符,包括><>=<=ininstanceof。前四个关系操作符我们已经很熟悉了。

1in操作符常用来测试一个给定的属性是否包含在一个对象内。注意,in搜索的是属性的存在与否而不是属性的值。

输出结果:

in操作符在数组中使用

输出结果:

输出结果:

输出结果:

以上三个例子就证明了in搜索的是对象的属性而不是属性值。注,数组索引可以看作数组对象的属性。

2instanceof操作符,通常用来判断一个变量是否是对象的一个实例。下面通过一个JS内建对象Date来测试:

输出结果:

同样这也可以适用于我们自定义的对象判断,下面我们痛殴构造函数方式自定义一个名为Person对象:

输出结果:

容易与typeof()这个内置函数混淆,in判断变量是不是对象的实例,而typyof()是获取变量的数据类型。

5.  一元操作符。+-、!、~++--deletetypeofvoid

1) 首先提到熟悉的+-、!,下面我们通过代码解读这些操作符

输出结果:

 

而不是 string

+”会将一个值转换为数字,但是这样经常会出错不靠谱,通常我们选择使用ToNumber()来显式转换。

“-”用来求操作数的负值,通常用来创建一个负数。

!”用来对操作数求反,返回布尔值

2) 自增(++)自减(--),i++i--类似这样的后缀表达式很容易理解,在循环中是一个很不错的计数器。稍微不好理解的是在变量自增自减用于赋值过程中。简单描述:

输出结果:i先赋值给a,再自增

输出结果:i先自增,再赋值给a

3) delete操作符,从字面理解就是删除的意思,通常用来操作(删除)一个数组的索引值或一个对象的属性值。

输出结果:

输出结果:

4) typeof()返回操作数的数据类型,通过typeof可以判断给定的变量是否已经创建以及是否被用作字符串、数字或者布尔值,也可以判断该变量是否是某种类型的对象或者函数。

5) void操作符,经常在href中使用javascript:void();为协议,其实就是利用了void操作符执行参数后返回“未定义”,通俗理解未定义就是没有不存在。

6.  赋值操作符,最简单的就是“=”。没有什么好说的,这里主要说几个复合赋值操作符:+=-=*=/=%=等,在编程过程中使用此类复合赋值操作符可以达到节省字节的效果,让代码更轻巧,逻辑更缜密。

7.  逗号操作符。

1) 将多个var 变量结合在一起

2) for循环提供多个参数

3) 看见过这样一段代码,不理解逗号操作符时,并不太容易理解

回到逗号操作符描述:对它的每个操作对象求值(从左至右),然后返回最后一个操作对象的值。返回值是一个用圆括号包裹的表达式,依次执行x+=1x,最后返回x,此时的x=1,所以返回值应为1

输出结果:

同样这样的代码也不难理解:


订阅

欢迎订阅AnyForWeb出版物
欢迎订阅伽然出版物

栏目推荐

栏目推荐
JavaScript知识笔记9…

在jQuery源码中我们经常能看见各式各样…

栏目推荐
JavaScript知识笔记8…

函数的调用应该才是函数产生的根本,减…

栏目推荐
JavaScript知识笔记6…

在JS中使用操作符主要用来执行数学、相…

栏目推荐
JavaScript知识笔记5…

周知JS语法相对简单,语言结构简单,这…

栏目推荐
JavaScript知识笔记4…

JS相对于那些所谓重量级语言(C++、C#…

栏目推荐
JavaScript知识笔记3…

Javascript中this是一个指针概念,它表…

栏目推荐
JavaScript知识笔记2…

常见的变成语言Java、C#、C++等,同样…

AnyFroWebUED  

版权所有 © 2009-2016  沪ICP备14026814号-10

 

 

返回

很抱歉!

您现在还没有开通阅读权限,如有疑问,请联系我们。

联系电话:021-52047186

返回