《表达式与运算符》PPT课件.ppt_第1页
《表达式与运算符》PPT课件.ppt_第2页
《表达式与运算符》PPT课件.ppt_第3页
《表达式与运算符》PPT课件.ppt_第4页
《表达式与运算符》PPT课件.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 表达式与运算符,表达式与运算符是一个程序的基础,JavaScript中的表达式与运算符和C、C+、Java中的表达式与运算符十分相似,请看下面的介绍。,3.1 表达式,表达式(expression)就是JavaScript中的一个语句,这个语句可以是常量或变量,也可以是由常量、变量加上一些运算符组成的语句。因此,表达式可以分为以下三种: (1)常量表达式。常量表达式就是常量本身, (2)变量表达式。变量表达式就是变量的值, (3)复合表达式。复合表达式是由常量、变量加上一些运算符所组成的表达式,,3.2 操作数,操作数(Operant)是进行运算的常量或变量。,3.3 运算符介绍,在任

2、何一种语言中,处理数据是必不可少的一个功能,而运算符就是处理数据中所不能缺少的一种符号。,3.3.1 运算符,运算符(Operator)是一种用来处理数据的符号,日常算数中所用到的“+”、“-”、“”、“”都属于运算符。在JavaScript中的运算符大多也是由这样一些符号所表示,除此之外,还有一些运算符是使用关键字来表示的。,3.3.2 操作数的类型,运算符所连接的是操作数,而操作数也就是变量或常量,变量和常量都有一个数据类型,因此,在使用运算符创建表达式时,一定要注意操作数的数据类型。每一种运算符都要求其作用的操作数符合某种数据类型。,3.4 算术运算符,算术运算符所处理的对象都是数字类型

3、的操作数。算术运算符对数字型的操作数进行处理之后,返回的还是一个数字型的值。,3.4.1 加法运算符,加法运算符(+)是一个二元运算符,可以对两个数字型的操作数进行相加运算,返回值是两个操作数之和,,3.4.2 减法运算符,减法运算符(-)是一个二元运算符,可以对两个数字型的操作数进行相减运算,返回第1个操作数减去第2个操作数的值。,3.4.3 乘法运算符,乘法运算符(*)是一个二元运算符,可以对两个数字型的操作数进行相乘运算,返回两个操作数之积。,3.4.4 除法运算符,除法运算符(/)是一个二元运算符,可以对两个数字型的操作数进行相除运算,返回第1个操作数除以第2个操作数的值。,3.4.5

4、 模运算符,模运算符(%),又称为取余运算符。这也是一个二元运算符,可以对两个数字型的操作数进行取模操作,返回第1个操作数除以第2个操作数之后的余数。,3.4.6 负号运算符,负号运算符(-)是一个一元运算符,可以将一个数字进行取反操作,即将一个正数转换成相应的负数,也可以将一个负数转换成相应的正数。,3.4.7 正号运算符,与负号运算符相对应,正号运算符(+)也是一个一元运算符,但该运算符不会对操作数产生任何影响,只会让源代码看起来更清楚。,3.4.8 递增运算符,递增运算符(+)是一个一元运算符,该运算符可以将操作数进行递增操作,即每次增加1。递增运算符要求其操作数必须是变量、对象中的某个

5、属性或数组中的某个元素,并且操作数的类型必须是数字型的,如果操作数类型不是数字型,递增运算符会将其先转换为数字型数据,再进行递增操作。,3.4.9 递减运算符,递减运算符(-)也是一个一元运算符,该运算符可以将操作数进行递减操作,即每次减1。递减运算符要求其操作数必须是变量、对象中的某个属性或数组中的某个元素,并且操作数的类型必须是数字型的,如果操作数类型不是数字型,递减运算符会将其先转换为数字型数据,再进行递减操作。,3.5 关系运算符,关系运算符通常用于检查两个操作数之间的关系,即两个操作数之间是相等、大于还是小于关系等。关系运算符可以根据是否满足该关系来返回true或false。,3.5

6、.1 相等运算符,相等运算符(=)是一个二元运算符,可以比较两个操作数是否相等。如果相等,则返回布尔值true;如果不相等,则返回布尔值false。,3.5.2 等同运算符,等同运算符(=)与相等运算符类似,也是一个二元运算符,同样可以比较两个操作数是否相等。如果相等,则返回布尔值true;如果不相等,则返回布尔值false。请注意等同运算符与相等运算符在表示上的区别:相等运算符是两个等于号构成,而等同运算符是三个等于号构成。等同运算符对操作数是否相等的判断比相等运算符的判断要更为严格,等同运算符只有在两个操作数类型相同,并且值也相同的情况下才会返回true。,3.5.3 不等运算符,不等运算

7、符(!=)也是一个二元运算符,可以比较两个操作数是否不相等。如果不相等,则返回布尔值true;如果相等,则返回布尔值false。请看以下代码。(具体内容请参照书。),3.5.4 不等同运算符,不等同运算符(!=)与不等运算符类似,也是一个二元运算符,同样可以比较两个操作数是否不相等。如果不相等,则返回布尔值true,否则返回布尔值false。请注意不等同运算符比不等运算符多一个等于号。不等同运算符对操作数是否不相等的判断比不等运算符的判断要更为严格,不等同运算符只有在两个操作数类型相同,并且值也相同的情况下才会返回false。(具体内容请参照书。),3.5.5 小于运算符,小于运算符()是一个

8、二元运算符,当第1个操作数小于第2个操作数时返回true,否则返回false。请看以下代码。,3.5.6 大于运算符,大于运算符()是也一个二元运算符,与小于运算符相反,只有当第1个操作数大于第2个操作数时才返回true,否则返回false。(具体内容请参照书。),3.5.7 小于或等于运算符,小于或等于运算符(=)是一个二元运算符,当第1个操作数小于第2个操作数,或者第1个操作等于第2个操作数时(即第1个操作数不大于第2个操作数时),都能返回true,否则返回false。请看以下代码。(具体内容请参照书。),3.5.8 大于或等于运算符,大于或等于运算符(=)是一个二元运算符,当第1个操作数

9、大于第2个操作数,或者第1个操作等于第2个操作数时(即第1个操作数不小于第2个操作数时),都能返回true,否则返回false。(具体内容请参照书。),3.5.9 in运算符,in运算符虽然也是一个二元运算符,但是对运算符左右两个操作数的要求比较严格。in运算符要求第1个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的)操作数必须是数组或对象。只有第1个操作数的值是第2个操作数的属性名,才会返回true,否则返回false。(具体内容请参照书。),3.5.10 instanceof运算符,instanceof运算符是用来判断对象与对象实例之间关系的运算符,或者

10、说是判断对象是否属于由某个构造函数定义的。这也是一个二元运算符,该运算符要求第1个操作数是一个对象或数组的名称,而第2个操作是对象类的名字。如果第1个操作数是第2个操作数的实例,instanceof运算符将会返回true,否则返回false。(具体内容请参照书。),3.6 字符串运算符,字符串运算符比较简单,只有一个+运算符,该运算符的作用是连接两个字符串,并产生一个新的字符串。(具体内容请参照书。),3.7 赋值运算符,赋值运算符(=)的作用是给一个变量赋值,即将某个数值指定给某个变量。这也是一个二元运算符,赋值运算符的左侧操作数应该是一个变量、数组的一个元素,或者是对象的一个属性,而右侧操

11、作数可以是一个任意的数值。(具体内容请参照书。),3.8 逻辑运算符,逻辑运算符使用的是布尔操作数,在进行逻辑运算之后,返回的还是布尔值。逻辑运算符常与关系运算符结合使用,可以完成复杂的比较运算。而逻辑运算符的结果常用在if、while和for等语句中。,3.8.1 逻辑与运算符,逻辑与运算符(&)是一个二元运算符,要求左右两个操作数的值都必须是布尔值。逻辑与运算符可以对左右两个操作数进行AND运算,只有左右两个操作数的值都为真(true)时,才会返回true。如果其中一个或两个操作数的值为假(false),其返回值都为false。,3.8.2 逻辑或运算符,逻辑或运算符(|)是一个二元运算符

12、,要求左右两个操作数的值都必须是布尔值。逻辑或运算符可以对左右两个操作数进行OR运算,只有左右两个操作数的值都为假(false)时,才会返回false。如果其中一个或两个操作数的值为真(true),其返回值都为true。,3.8.3 逻辑非运算符,逻辑非运算符(!)是一个一元运算符,要求操作数放在运算符之后,并且操作数的值必须是布尔型。逻辑非运算符可以对操作数进行取反操作,如果运算数的值为true,取反操作之后的结果为false;如果运算数的值为false,取反操作之后的结果为true。(具体内容请参照书。),3.9 逐位运算符,逐位运算符是一种比较复杂的运算符,可以分为逐位逻辑运算符(Bit

13、wise Logical Operators)与逐位位移运算符(Bitwise Shift Operators)两种。无论是哪种逐位运算符,都必须先将操作数(要求是整型的操作数)转换成32位的二进制数值,然后再进行运算,运算完毕之后,将结果转换成十进制数值。,3.9.1 逐位与运算符,逐位与运算符(&)是一个二元运算符,该运算符可以将左右两个操作数逐位执行AND操作,即只有两个操作数中相对应的位都为1时,该结果中的这一位才为1,否则为0。(具体内容请参照书。),3.9.2 逐位或运算符,逐位或运算符(|)和逐位与运算符类似,可以将左右两个操作数逐位执行OR操作。两个操作数中相对应的位只要有一个

14、为1时,该结果中的这一位就为1,其他情况都为0。(具体内容请参照书。),3.9.3 逐位异或运算符,逐位异或运算符()和逐位与运算符类似,可以将左右两个操作数逐位执行异或操作。所谓异或操作是指,第1个操作数与第2个操作数相对应的位上两个数值相同时结果为0,否则为1。(具体内容请参照书。),3.9.4 逐位非运算符,逐位非运算符()是一个一元操作符,作用于操作数之前,可以将操作数中所有位的数值取反。在JavaScript中,对一个带符号的整数进行逐位非运算,相当于将该整数改变符号后再减1。(具体内容请参照书。),3.9.5 左移运算符,左移运算符()是一个二元操作符,可以将第1个操作数中的所有数

15、值(一共32位)向左移动,移动的位数由第2个操作数决定,因此第2个操作数应该是0到31的整数。(具体内容请参照书。),3.9.6 带符号的右移运算符,带符号的右移运算符()是一个二元操作符,可以将第1个操作数中的所有数值(一共32位)向右移动,移动的位数由第2个操作数决定,因此第2个操作数应该是0到31的整数。(具体内容请参照书。),3.9.7 用0补足的右移运算符,用0补足的右移运算符()与带符号的左移运算符类似,只是在右移时,最左则的数值都是用0来补充,(具体内容请参照书。),3.10 其他运算符,除了前面章节里所介绍的运算符之外,JavaScript还支持许多其他运算符,请看以下的介绍。

16、,3.10.1 条件运算符,条件运算符(?:)是在JavaScript中惟一的一个三元运算符。三元运算符必须有3个操作数:第1个操作数位于“?”之前;第2个操作数位于“?”与“:”之间;第3个操作数位于“:”之后。,3.10.2 new运算符,在JavaScript中有很多内置对象,如日期对象、字符串对象、布尔对象、数值对象等,使用new运算符可以用来定义一个新的内置对象实例,JavaScript会调用构造函数初始化这个对象实例。,3.10.3 void运算符,void运算符是一个特殊的一元运算符,可以作用在任何类型的操作数之前。void运算符可以让操作数进行运算,但是却舍弃运算之后的结果。通

17、常void运算符出现在HTML代码的标签中,,3.10.4 typeof运算符,typeof运算符是一个一元运算符,作用于操作数之前,该操作数可以是一个任何类型的操作。typeof运算符可以返回一个字符串,该字符串说明操作数是什么类型。,3.10.5 对象属性存取运算符,对象属性存取运算符(.)是一个二元运算符,该运算符要求第1个操作数必须是对象或对象实例名,而第2个操作数必须是对象的属性名。对象属性存取运算符的语法代码如下所示:对象名.属性名,3.10.6 数组元素存取运算符,数组元素存取运算符()可以用来存取数组中某个元素的值。在该运算符中,“”之前为第1个操作,该操作数必须是数组的名称。

18、在“”与“”之间为第2个操作数,该操作数为数组的下标,并且必须是整数型,其取值范围为从0到数组元素个数减1。数组元素存取运算符的语法代码如下所示:数组名下标,3.10.7 delete运算符,delete运算符可以用来删除变量、对象的属性、或数组中的元素。delete运算符返回的是布尔值数据。如果删除操作成功,则返回true,否则返回false。delete运算符的使用语法如下所示: delete 对象名 delete 对象名称.属性 delete 数组索引 delete 变量名,3.10.8 逗号运算符,逗号运算符是一个二元运算符,其作用只是分隔两个操作数,JavaScript会先计算第1个操作数的值,再计算第2个操作数的值。通常逗号运算符都与for语句联合使用。(具体内容请参照书。),3.10.9 函数调用运算符,函数调用运算符(())是一个特殊的运算符,其作用是调用函数。之所以说该运算符特殊,是因为该运算符没有确定数量的操作数,操作数的多少由函数的参数多少来决定。(具体内容请参照书。),3.10.10 this

温馨提示

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

评论

0/150

提交评论