《第3章表达式与运算符精选PPT.ppt》由会员分享,可在线阅读,更多相关《第3章表达式与运算符精选PPT.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 表达式与运算符第1页,本讲稿共54页3.1 表达式表达式(expression)就是JavaScript中的一个语句,这个语句可以是常量或变量,也可以是由常量、变量加上一些运算符组成的语句。因此,表达式可以分为以下三种:(1)常量表达式。常量表达式就是常量本身,(2)变量表达式。变量表达式就是变量的值,(3)复合表达式。复合表达式是由常量、变量加上一些运算符所组成的表达式,第2页,本讲稿共54页3.2 操作数操作数(Operant)是进行运算的常量或变量。第3页,本讲稿共54页3.3 运算符介绍在任何一种语言中,处理数据是必不可少的一个功能,而运算符就是处理数据中所不能缺少的一种符号。
2、第4页,本讲稿共54页3.3.1 运算符运算符(Operator)是一种用来处理数据的符号,日常算数中所用到的“+”、“-”、“”、“”都属于运算符。在JavaScript中的运算符大多也是由这样一些符号所表示,除此之外,还有一些运算符是使用关键字来表示的。第5页,本讲稿共54页3.3.2 操作数的类型运算符所连接的是操作数,而操作数也就是变量或常量,变量和常量都有一个数据类型,因此,在使用运算符创建表达式时,一定要注意操作数的数据类型。每一种运算符都要求其作用的操作数符合某种数据类型。第6页,本讲稿共54页3.4 算术运算符算术运算符所处理的对象都是数字类型的操作数。算术运算符对数字型的操作
3、数进行处理之后,返回的还是一个数字型的值。第7页,本讲稿共54页3.4.1 加法运算符加法运算符(+)是一个二元运算符,可以对两个数字型的操作数进行相加运算,返回值是两个操作数之和,第8页,本讲稿共54页3.4.2 减法运算符减法运算符(-)是一个二元运算符,可以对两个数字型的操作数进行相减运算,返回第1个操作数减去第2个操作数的值。第9页,本讲稿共54页3.4.3 乘法运算符乘法运算符(*)是一个二元运算符,可以对两个数字型的操作数进行相乘运算,返回两个操作数之积。第10页,本讲稿共54页3.4.4 除法运算符除法运算符(/)是一个二元运算符,可以对两个数字型的操作数进行相除运算,返回第1个
4、操作数除以第2个操作数的值。第11页,本讲稿共54页3.4.5 模运算符模运算符(%),又称为取余运算符。这也是一个二元运算符,可以对两个数字型的操作数进行取模操作,返回第1个操作数除以第2个操作数之后的余数。第12页,本讲稿共54页3.4.6 负号运算符负号运算符(-)是一个一元运算符,可以将一个数字进行取反操作,即将一个正数转换成相应的负数,也可以将一个负数转换成相应的正数。第13页,本讲稿共54页3.4.7 正号运算符与负号运算符相对应,正号运算符(+)也是一个一元运算符,但该运算符不会对操作数产生任何影响,只会让源代码看起来更清楚。第14页,本讲稿共54页3.4.8 递增运算符递增运算
5、符(+)是一个一元运算符,该运算符可以将操作数进行递增操作,即每次增加1。递增运算符要求其操作数必须是变量、对象中的某个属性或数组中的某个元素,并且操作数的类型必须是数字型的,如果操作数类型不是数字型,递增运算符会将其先转换为数字型数据,再进行递增操作。第15页,本讲稿共54页3.4.9 递减运算符递减运算符(-)也是一个一元运算符,该运算符可以将操作数进行递减操作,即每次减1。递减运算符要求其操作数必须是变量、对象中的某个属性或数组中的某个元素,并且操作数的类型必须是数字型的,如果操作数类型不是数字型,递减运算符会将其先转换为数字型数据,再进行递减操作。第16页,本讲稿共54页3.5 关系运
6、算符关系运算符通常用于检查两个操作数之间的关系,即两个操作数之间是相等、大于还是小于关系等。关系运算符可以根据是否满足该关系来返回true或false。第17页,本讲稿共54页3.5.1 相等运算符相等运算符(=)是一个二元运算符,可以比较两个操作数是否相等。如果相等,则返回布尔值true;如果不相等,则返回布尔值false。第18页,本讲稿共54页3.5.2 等同运算符等同运算符(=)与相等运算符类似,也是一个二元运算符,同样可以比较两个操作数是否相等。如果相等,则返回布尔值true;如果不相等,则返回布尔值false。请注意等同运算符与相等运算符在表示上的区别:相等运算符是两个等于号构成,
7、而等同运算符是三个等于号构成。等同运算符对操作数是否相等的判断比相等运算符的判断要更为严格,等同运算符只有在两个操作数类型相同,并且值也相同的情况下才会返回true。第19页,本讲稿共54页3.5.3 不等运算符不等运算符(!=)也是一个二元运算符,可以比较两个操作数是否不相等。如果不相等,则返回布尔值true;如果相等,则返回布尔值false。请看以下代码。(具体内容请参照书。)第20页,本讲稿共54页3.5.4 不等同运算符不等同运算符(!=)与不等运算符类似,也是一个二元运算符,同样可以比较两个操作数是否不相等。如果不相等,则返回布尔值true,否则返回布尔值false。请注意不等同运算
8、符比不等运算符多一个等于号。不等同运算符对操作数是否不相等的判断比不等运算符的判断要更为严格,不等同运算符只有在两个操作数类型相同,并且值也相同的情况下才会返回false。(具体内容请参照书。)第21页,本讲稿共54页3.5.5 小于运算符小于运算符()是也一个二元运算符,与小于运算符相反,只有当第1个操作数大于第2个操作数时才返回true,否则返回false。(具体内容请参照书。)第23页,本讲稿共54页3.5.7 小于或等于运算符小于或等于运算符(=)是一个二元运算符,当第1个操作数大于第2个操作数,或者第1个操作等于第2个操作数时(即第1个操作数不小于第2个操作数时),都能返回true,
9、否则返回false。(具体内容请参照书。)第25页,本讲稿共54页3.5.9 in运算符in运算符虽然也是一个二元运算符,但是对运算符左右两个操作数的要求比较严格。in运算符要求第1个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的)操作数必须是数组或对象。只有第1个操作数的值是第2个操作数的属性名,才会返回true,否则返回false。(具体内容请参照书。)第26页,本讲稿共54页3.5.10 instanceof运算符instanceof运算符是用来判断对象与对象实例之间关系的运算符,或者说是判断对象是否属于由某个构造函数定义的。这也是一个二元运算符,该运
10、算符要求第1个操作数是一个对象或数组的名称,而第2个操作是对象类的名字。如果第1个操作数是第2个操作数的实例,instanceof运算符将会返回true,否则返回false。(具体内容请参照书。)第27页,本讲稿共54页3.6 字符串运算符字符串运算符比较简单,只有一个+运算符,该运算符的作用是连接两个字符串,并产生一个新的字符串。(具体内容请参照书。)第28页,本讲稿共54页3.7 赋值运算符赋值运算符(=)的作用是给一个变量赋值,即将某个数值指定给某个变量。这也是一个二元运算符,赋值运算符的左侧操作数应该是一个变量、数组的一个元素,或者是对象的一个属性,而右侧操作数可以是一个任意的数值。(
11、具体内容请参照书。)第29页,本讲稿共54页3.8 逻辑运算符逻辑运算符使用的是布尔操作数,在进行逻辑运算之后,返回的还是布尔值。逻辑运算符常与关系运算符结合使用,可以完成复杂的比较运算。而逻辑运算符的结果常用在if、while和for等语句中。第30页,本讲稿共54页3.8.1 逻辑与运算符逻辑与运算符(&)是一个二元运算符,要求左右两个操作数的值都必须是布尔值。逻辑与运算符可以对左右两个操作数进行AND运算,只有左右两个操作数的值都为真(true)时,才会返回true。如果其中一个或两个操作数的值为假(false),其返回值都为false。第31页,本讲稿共54页3.8.2 逻辑或运算符逻
12、辑或运算符(|)是一个二元运算符,要求左右两个操作数的值都必须是布尔值。逻辑或运算符可以对左右两个操作数进行OR运算,只有左右两个操作数的值都为假(false)时,才会返回false。如果其中一个或两个操作数的值为真(true),其返回值都为true。第32页,本讲稿共54页3.8.3 逻辑非运算符逻辑非运算符(!)是一个一元运算符,要求操作数放在运算符之后,并且操作数的值必须是布尔型。逻辑非运算符可以对操作数进行取反操作,如果运算数的值为true,取反操作之后的结果为false;如果运算数的值为false,取反操作之后的结果为true。(具体内容请参照书。)第33页,本讲稿共54页3.9 逐
13、位运算符逐位运算符是一种比较复杂的运算符,可以分为逐位逻辑运算符(Bitwise Logical Operators)与逐位位移运算符(Bitwise Shift Operators)两种。无论是哪种逐位运算符,都必须先将操作数(要求是整型的操作数)转换成32位的二进制数值,然后再进行运算,运算完毕之后,将结果转换成十进制数值。第34页,本讲稿共54页3.9.1 逐位与运算符逐位与运算符(&)是一个二元运算符,该运算符可以将左右两个操作数逐位执行AND操作,即只有两个操作数中相对应的位都为1时,该结果中的这一位才为1,否则为0。(具体内容请参照书。)第35页,本讲稿共54页3.9.2 逐位或运
14、算符逐位或运算符(|)和逐位与运算符类似,可以将左右两个操作数逐位执行OR操作。两个操作数中相对应的位只要有一个为1时,该结果中的这一位就为1,其他情况都为0。(具体内容请参照书。)第36页,本讲稿共54页3.9.3 逐位异或运算符逐位异或运算符()和逐位与运算符类似,可以将左右两个操作数逐位执行异或操作。所谓异或操作是指,第1个操作数与第2个操作数相对应的位上两个数值相同时结果为0,否则为1。(具体内容请参照书。)第37页,本讲稿共54页3.9.4 逐位非运算符逐位非运算符()是一个一元操作符,作用于操作数之前,可以将操作数中所有位的数值取反。在JavaScript中,对一个带符号的整数进行
15、逐位非运算,相当于将该整数改变符号后再减1。(具体内容请参照书。)第38页,本讲稿共54页3.9.5 左移运算符左移运算符()是一个二元操作符,可以将第1个操作数中的所有数值(一共32位)向右移动,移动的位数由第2个操作数决定,因此第2个操作数应该是0到31的整数。(具体内容请参照书。)第40页,本讲稿共54页3.9.7 用0补足的右移运算符用0补足的右移运算符()与带符号的左移运算符类似,只是在右移时,最左则的数值都是用0来补充,(具体内容请参照书。)第41页,本讲稿共54页3.10 其他运算符除了前面章节里所介绍的运算符之外,JavaScript还支持许多其他运算符,请看以下的介绍。第42
16、页,本讲稿共54页3.10.1 条件运算符条件运算符(?:)是在JavaScript中惟一的一个三元运算符。三元运算符必须有3个操作数:第1个操作数位于“?”之前;第2个操作数位于“?”与“:”之间;第3个操作数位于“:”之后。第43页,本讲稿共54页3.10.2 new运算符在JavaScript中有很多内置对象,如日期对象、字符串对象、布尔对象、数值对象等,使用new运算符可以用来定义一个新的内置对象实例,JavaScript会调用构造函数初始化这个对象实例。第44页,本讲稿共54页3.10.3 void运算符void运算符是一个特殊的一元运算符,可以作用在任何类型的操作数之前。void运
17、算符可以让操作数进行运算,但是却舍弃运算之后的结果。通常void运算符出现在HTML代码的标签中,第45页,本讲稿共54页3.10.4 typeof运算符typeof运算符是一个一元运算符,作用于操作数之前,该操作数可以是一个任何类型的操作。typeof运算符可以返回一个字符串,该字符串说明操作数是什么类型。第46页,本讲稿共54页3.10.5 对象属性存取运算符对象属性存取运算符(.)是一个二元运算符,该运算符要求第1个操作数必须是对象或对象实例名,而第2个操作数必须是对象的属性名。对象属性存取运算符的语法代码如下所示:对象名.属性名第47页,本讲稿共54页3.10.6 数组元素存取运算符数
18、组元素存取运算符()可以用来存取数组中某个元素的值。在该运算符中,“”之前为第1个操作,该操作数必须是数组的名称。在“”与“”之间为第2个操作数,该操作数为数组的下标,并且必须是整数型,其取值范围为从0到数组元素个数减1。数组元素存取运算符的语法代码如下所示:数组名下标第48页,本讲稿共54页3.10.7 delete运算符delete运算符可以用来删除变量、对象的属性、或数组中的元素。delete运算符返回的是布尔值数据。如果删除操作成功,则返回true,否则返回false。delete运算符的使用语法如下所示:delete 对象名delete 对象名称.属性delete 数组索引delet
19、e 变量名第49页,本讲稿共54页3.10.8 逗号运算符逗号运算符是一个二元运算符,其作用只是分隔两个操作数,JavaScript会先计算第1个操作数的值,再计算第2个操作数的值。通常逗号运算符都与for语句联合使用。(具体内容请参照书。)第50页,本讲稿共54页3.10.9 函数调用运算符函数调用运算符(())是一个特殊的运算符,其作用是调用函数。之所以说该运算符特殊,是因为该运算符没有确定数量的操作数,操作数的多少由函数的参数多少来决定。(具体内容请参照书。)第51页,本讲稿共54页3.10.10 this运算符虽然在很多时候,都称“this”为运算符,但“this”更像是一个关键字,因为它不需要操作数。this所代表的是当前对象,(具体内容请参照书。)第52页,本讲稿共54页3.11 运算符的优先级在一个表达式中,有可能同时出现多个运算符,(具体内容请参照书。)第53页,本讲稿共54页3.12 小结在本章里主要介绍了JavaScript中的表达式、操作数与运算符。JavaScript中的运算符比较多,可以分为算术运算符、关系运算符、字符串运算符、赋值运算符、逻辑运算符、逐位运算符和其他运算符七大类。在使用JavaScript中的运算符时,要注意不同运算符的优先次序。在下一章里将会介绍JavaScript中的语句。第54页,本讲稿共54页
限制150内