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

软件和网站开发以及相关技术探讨
回复
木曦java
帖子: 1
注册时间: 2017-11-27 18:07
系统: win10

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

#1

帖子 木曦java » 2017-11-27 18:13

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

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

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

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

解读操作符-1.jpg

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

解读操作符-2.jpg

等同于

解读操作符-3.jpg

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

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

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

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

解读操作符-4.jpg

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

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

解读操作符-5.jpg

输出结果:

解读操作符-24.jpg

in操作符在数组中使用

解读操作符-7.jpg

输出结果:

解读操作符-25.jpg

解读操作符-7.jpg

输出结果:

解读操作符-26.jpg

解读操作符-8.jpg

输出结果:

解读操作符-25.jpg

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

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

解读操作符-9.jpg

输出结果:

解读操作符-27.jpg

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

解读操作符-10.jpg

输出结果:

解读操作符-28.jpg

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

解读操作符-11.jpg

5. 一元操作符。+、-、!、~、++、--、delete、typeof、void

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

解读操作符-12.jpg

输出结果:



而不是 string

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

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

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

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

解读操作符-13.png

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

解读操作符-29.jpg

解读操作符-14.jpg

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

解读操作符-29.jpg

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

解读操作符-15.jpg

输出结果:

解读操作符-30.jpg

解读操作符-16.jpg

输出结果:

解读操作符-31.jpg

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

解读操作符-17.jpg

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

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

解读操作符-18.jpg

7. 逗号操作符。

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

解读操作符-19.jpg

2) 为for循环提供多个参数

解读操作符-20.jpg

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

解读操作符-21.jpg

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

解读操作符-22.jpg

输出结果:

解读操作符-32.jpg

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

解读操作符-23.png
回复