JavaScript-3分析_第1页
JavaScript-3分析_第2页
JavaScript-3分析_第3页
JavaScript-3分析_第4页
JavaScript-3分析_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、3.1第三章第三章 表达式与操作符表达式与操作符3.2本章结构本章结构u表达式表达式u运算符概述运算符概述u算数运算符算数运算符u比较运算符比较运算符u逻辑运算符逻辑运算符u逐位运算符逐位运算符u条件运算符条件运算符u其它运算符其它运算符3.3表达式表达式u表达式是各种数值、变量、运算符的综合体,最简单的表表达式是各种数值、变量、运算符的综合体,最简单的表达式可以是常量或者变量名称。达式可以是常量或者变量名称。u表达式的值是表达式运算的结果,常量表达式的值就是常表达式的值是表达式运算的结果,常量表达式的值就是常量本身,变量表达式的值则是变量引用的值。量本身,变量表达式的值则是变量引用的值。 u

2、在实际编程中,可以使用运算数和运算符建立复杂的表达在实际编程中,可以使用运算数和运算符建立复杂的表达式,运算数是一个表达式内的变量和常量,运算符是表达式,运算数是一个表达式内的变量和常量,运算符是表达式中用来处理运算数的各种符号。式中用来处理运算数的各种符号。 n常量表达式:常量表达式:“skycobra” n变量表达式:变量表达式:examplen赋值表达式:赋值表达式:stringExample = “小郭小郭”;3.4运算符概述运算符概述u运算符的优先级运算符的优先级n如果表达式中存在多个运算符,那么它们总是如果表达式中存在多个运算符,那么它们总是按照一定的顺序被执行,表达式中运算符的执

3、按照一定的顺序被执行,表达式中运算符的执行顺序被称为运算符的优先级。行顺序被称为运算符的优先级。n可以改变默认的运算顺序,使之满足需要,方可以改变默认的运算顺序,使之满足需要,方法就是使用运算符法就是使用运算符“( )”,因为括号运算符的优,因为括号运算符的优先级高于其他运算符的优先级。先级高于其他运算符的优先级。3.5u运算数的类型运算数的类型n不同运算符对其处理的运算数存在类型要求,不同运算符对其处理的运算数存在类型要求,例如不能将两个由非数字字符组成的字符串进例如不能将两个由非数字字符组成的字符串进行乘法运算。行乘法运算。nJavaScript会在运算过程中,按需要自动转换会在运算过程中

4、,按需要自动转换运算数的类型,例如由数字组成的字符串在进运算数的类型,例如由数字组成的字符串在进行乘法运算时将自动转换成数字。行乘法运算时将自动转换成数字。n运算数的类型不一定与表达式的结果相同,例运算数的类型不一定与表达式的结果相同,例如比较表达式中的运算数往往不是布尔型数据如比较表达式中的运算数往往不是布尔型数据,而返回结果总是布尔型数据。,而返回结果总是布尔型数据。3.6运算符概述运算符概述u运算符的类型运算符的类型n根据运算数的个数,可以将运算符分为三种类型:一根据运算数的个数,可以将运算符分为三种类型:一元运算符、二元运算符和三元运算符。元运算符、二元运算符和三元运算符。 一元运算符

5、是指只需要一个运算数参与运算的运算一元运算符是指只需要一个运算数参与运算的运算符,一元运算符的典型应用是取反运算。符,一元运算符的典型应用是取反运算。二元运算符需要两个运算数参与运算,二元运算符需要两个运算数参与运算,JavaScript中的大部分运算符都是二元运算符,比如加法运算中的大部分运算符都是二元运算符,比如加法运算符、比较运算符等等。符、比较运算符等等。JavaScript还支持三元运算符还支持三元运算符“?:”,这种运算符比,这种运算符比较特殊,它可以将三个表达式合并为一个复杂的表较特殊,它可以将三个表达式合并为一个复杂的表达式。达式。 3.7算数运算符算数运算符u加法运算符加法运

6、算符n二元运算符,可以对数字型的运算数进行加法操作,二元运算符,可以对数字型的运算数进行加法操作,如如204+108;204+108;u减法运算符减法运算符n二元运算符,可以对数字型运算数进行减法法操作,二元运算符,可以对数字型运算数进行减法法操作,如如204-108;204-108;u乘法运算符乘法运算符n二元运算符,可以对数字型运算数进行乘法操作。二元运算符,可以对数字型运算数进行乘法操作。n如果运算数不是数字型,那么如果运算数不是数字型,那么JavaScriptJavaScript会将其自动会将其自动转换为数字型,如果无法转换为数字型,运算结果将转换为数字型,如果无法转换为数字型,运算结

7、果将返回返回“NaN” NaN” 。3.8u除法运算符除法运算符n二元运算符,可以对数字型运算数进行除法法操作。二元运算符,可以对数字型运算数进行除法法操作。运算规则与乘法运算类似。但是,如果被除数为运算规则与乘法运算类似。但是,如果被除数为0 0,除,除数为正,结果为数为正,结果为“Infinity”“Infinity”除数为负数结果为除数为负数结果为 “- Infinity” “- Infinity”,都为,都为0 0则结果为则结果为NaN NaN 。u 模运算符模运算符n又称为取余数运算符,用于计算第一个运算数对第二又称为取余数运算符,用于计算第一个运算数对第二个运算数的模,也就是用第一

8、个运算数去除第二个运个运算数的模,也就是用第一个运算数去除第二个运算数,获取余数。算数,获取余数。n任何数字和字符对任何数字和字符对0取模,结果都是取模,结果都是“NaN”;另外,;另外,如果运算数中包含无法转换成数字的内容,运算结果如果运算数中包含无法转换成数字的内容,运算结果也是也是“NaN”。算数运算符算数运算符3.9算数运算符算数运算符u增量运算符增量运算符n增量运算符是一元操作符,可对运算数进行增量操作增量运算符是一元操作符,可对运算数进行增量操作,增量为,增量为1。n增量运算数必须是变量、数组元素或者对象属性,不增量运算数必须是变量、数组元素或者对象属性,不能是常量。能是常量。n增

9、量运算有两种不同的形式:增量运算有两种不同的形式:i+和和+i。u减量运算符减量运算符n减量运算符是一元操作符,可对运算数进行减量操作减量运算符是一元操作符,可对运算数进行减量操作,减量为,减量为1。n减量运算符的规则和形式可以参考增量运算符。减量运算符的规则和形式可以参考增量运算符。3.10比较运算符比较运算符u等于运算符等于运算符(=)n等于运算符用于判断两个运算数是否相等,如果相等等于运算符用于判断两个运算数是否相等,如果相等返回返回true,如果不相等返回,如果不相等返回false。n如果被比较的运算数是同类型的,那么等于运算符将如果被比较的运算数是同类型的,那么等于运算符将直接对运算

10、数进行比较。直接对运算数进行比较。n如果被比较的运算数类型不同,那么等于运算符在比如果被比较的运算数类型不同,那么等于运算符在比较两个运算数之前会自动对其进行类型转换。较两个运算数之前会自动对其进行类型转换。n两个对象、数组或者函数的比较是引用内容的比较,两个对象、数组或者函数的比较是引用内容的比较,换句话说,只有两个变量引用的是同一个对象、数组换句话说,只有两个变量引用的是同一个对象、数组或者函数的时候,它们才是相等的。或者函数的时候,它们才是相等的。n特殊值的比较特殊值的比较3.11比较运算符比较运算符u严格等于运算符严格等于运算符(=)n严格等于运算符(严格等于运算符(= = =)也是运

11、用判断两个运算数是)也是运用判断两个运算数是否相等,但是它在比较之前不会对运算数的类型进行否相等,但是它在比较之前不会对运算数的类型进行自动转换。只有两个运算数在没有进行类型转换前是自动转换。只有两个运算数在没有进行类型转换前是相等的,它才会返回相等的,它才会返回true,否则返回,否则返回false。n严格不等于运算符不进行数据的类型转换,所以不同严格不等于运算符不进行数据的类型转换,所以不同类型的运算数都是不相等的。例如:字符串类型的运算数都是不相等的。例如:字符串“5”和数和数字字5在等于运算符判断下是相同的,但在严格不等于运在等于运算符判断下是相同的,但在严格不等于运算符判断下就是不相

12、同的。算符判断下就是不相同的。n特殊值的比较也发生了一些变化:在严格不等于运算特殊值的比较也发生了一些变化:在严格不等于运算符的判断下,符的判断下,null和未定义类型的数据不相等。和未定义类型的数据不相等。3.12比较运算符比较运算符u不等于运算符不等于运算符(!=)n不等于运算符用于判断两个运算数是否相等,相等返不等于运算符用于判断两个运算数是否相等,相等返回回false,不相等返回,不相等返回true 。n不等于运算符和等于运算符的数据类型转换规则,对不等于运算符和等于运算符的数据类型转换规则,对象、数组和函数的比较方法,以及特殊值的处理情况象、数组和函数的比较方法,以及特殊值的处理情况

13、都可以参考等于运算符的情况。都可以参考等于运算符的情况。u严格不等于运算符严格不等于运算符(!=)n严格不等于运算符与严格等于运算符比较规则相反:严格不等于运算符与严格等于运算符比较规则相反:如果两个没有经过类型转换的运算数完全相等,返回如果两个没有经过类型转换的运算数完全相等,返回false,否则返回,否则返回true。n其他情况可以参看严格等于运算符。其他情况可以参看严格等于运算符。3.13比较运算符比较运算符u小于运算符小于运算符()n小于运算符用于比较两个运算数,如果第一个运算数小于第二个小于运算符用于比较两个运算数,如果第一个运算数小于第二个运算数,那么计算结果返回运算数,那么计算结

14、果返回true,否则返回,否则返回false。n运算数可以是任何类型,但是比较运算只能在数字和字符串上执运算数可以是任何类型,但是比较运算只能在数字和字符串上执行,所以不是数字和字符类型的数据都会被转换成这两种类型。行,所以不是数字和字符类型的数据都会被转换成这两种类型。n如果两个运算数是数字,或者都被转换成数字,那么比较按照数如果两个运算数是数字,或者都被转换成数字,那么比较按照数字大小规则执行。字大小规则执行。n如果两个运算数是字符串,或者都被转换成字符串,那么比较按如果两个运算数是字符串,或者都被转换成字符串,那么比较按照字母顺序规则执行。照字母顺序规则执行。n如果一个是字符串或者被转换

15、成字符串,一个是数字或者被转换如果一个是字符串或者被转换成字符串,一个是数字或者被转换成数字,那么首先会将字符串转换成数字,然后按照数字大小规成数字,那么首先会将字符串转换成数字,然后按照数字大小规则执行比较。则执行比较。n如果运算数中包含无法转换成数字也无法转换成字符串的内容,如果运算数中包含无法转换成数字也无法转换成字符串的内容,那么比较结果将是那么比较结果将是false。3.14比较运算符比较运算符u小于等于运算符小于等于运算符()n大于运算符用于比较两个运算数,如果第一个运算数大于运算符用于比较两个运算数,如果第一个运算数大于第二个运算数,那么计算结果返回大于第二个运算数,那么计算结果

16、返回true,否则返回,否则返回false。u大于等于运算符大于等于运算符(=)n大于等于运算符用于比较两个运算数,如果第一个运大于等于运算符用于比较两个运算数,如果第一个运算数大于等于第二个运算数,那么计算结果返回算数大于等于第二个运算数,那么计算结果返回true,否则返回否则返回false。u以上三种运算符的其它规则可以参看小于运算符以上三种运算符的其它规则可以参看小于运算符3.15逻辑运算符逻辑运算符u逻辑与运算符(逻辑与运算符(&)n逻辑与运算符是一个二元运算符,如果它的两个布尔逻辑与运算符是一个二元运算符,如果它的两个布尔型运算数都是型运算数都是true,那么运算结果为,那么运算结果

17、为true,如果它的两,如果它的两个布尔型运算数中有一个或者两个为个布尔型运算数中有一个或者两个为false,那么运算,那么运算结果为结果为false。u逻辑或运算符(逻辑或运算符(|)n如果逻辑或运算符的两个布尔型运算数中有一个是如果逻辑或运算符的两个布尔型运算数中有一个是true,那么运算结果为,那么运算结果为true,如果它的两个布尔型运算数全,如果它的两个布尔型运算数全部为部为false,那么运算结果为,那么运算结果为false。u逻辑非运算符(!)逻辑非运算符(!)n逻辑非运算符是一个一元运算符,其作用是先计算其逻辑非运算符是一个一元运算符,其作用是先计算其运算数的布尔值,然后对运算

18、数的布尔值取反,并作运算数的布尔值,然后对运算数的布尔值取反,并作为结果返回。为结果返回。3.16逐位运算符逐位运算符u按位与运算符(按位与运算符(&)n按位与运算符是一个二元运算符,将对它的整型运算按位与运算符是一个二元运算符,将对它的整型运算数(二进制整数或者已经被转换成二进制整数)逐位数(二进制整数或者已经被转换成二进制整数)逐位进行逻辑与操作,只有当两个运算数中相同位的数字进行逻辑与操作,只有当两个运算数中相同位的数字都是都是1的时候,运算结果中这一位上的数字才是的时候,运算结果中这一位上的数字才是1,否,否则就是则就是0。 u按位或运算符(按位或运算符(|)n按位或运算符将对它的整型

19、运算数(二进制整数或者按位或运算符将对它的整型运算数(二进制整数或者已经被转换成二进制整数)逐位进行逻辑或操作,如已经被转换成二进制整数)逐位进行逻辑或操作,如果两个运算数中相同位的数字至少有一个是果两个运算数中相同位的数字至少有一个是1,运算结,运算结果中这一位上的数字就是果中这一位上的数字就是1;如果两个运算数中相同位;如果两个运算数中相同位上的数字都是上的数字都是0,那么运算结果中这一位上的数字才是,那么运算结果中这一位上的数字才是0。3.17逐位运算符逐位运算符u按位异或运算符(按位异或运算符()n按位异或运算符将对它的整型运算数(按位异或运算符将对它的整型运算数( 二进制整数或二进制

20、整数或者已经被转换成二进制整数)逐位进行逻辑异或操作者已经被转换成二进制整数)逐位进行逻辑异或操作,如果两个运算数中相同位上只有一个,如果两个运算数中相同位上只有一个1,那么运算结,那么运算结果中这一位上的数字才是果中这一位上的数字才是1。u按位非运算符(按位非运算符()n按位非运算符对运算数的每一位取反,将按位非运算符对运算数的每一位取反,将1变成变成0,将,将0变成变成1。 3.18u左移运算符(左移运算符()n右移运算符(右移运算符()是一个二元运算符,第一个运算数)是一个二元运算符,第一个运算数是被移位的整型运算数(二进制整数或者已经被转换是被移位的整型运算数(二进制整数或者已经被转换

21、成二进制整数),第二个操作数表示移动的位数。成二进制整数),第二个操作数表示移动的位数。n移动的位数应该介于移动的位数应该介于0到到31之间,因为这里的运算数是之间,因为这里的运算数是32位的二进制整型,如果移动位数大于等于位的二进制整型,如果移动位数大于等于32,将对,将对32取模。取模。n如果第一个运算数如果第一个运算数a为正数,那么用为正数,那么用0填充移动后的左填充移动后的左端第一位;第一个运算数端第一位;第一个运算数a为负数,那么用为负数,那么用1填充移动填充移动后的左端第一位,这样做的目的是为了保持移动后结后的左端第一位,这样做的目的是为了保持移动后结果的符号与原运算数一致。果的符

22、号与原运算数一致。 3.20逐位运算符逐位运算符u补补0的右移运算符(的右移运算符()n补补0的右移运算符(的右移运算符()与右移运算符()与右移运算符()基本一)基本一致,唯一不同的就是右移过程中,总是用致,唯一不同的就是右移过程中,总是用0填充由于左填充由于左端数字移动而产生的空位,不考虑原始运算数的符号端数字移动而产生的空位,不考虑原始运算数的符号。3.21赋值运算符赋值运算符u简单的赋值运算符简单的赋值运算符(=)n赋值运算符要求它左边是一个变量、数组元素或者对赋值运算符要求它左边是一个变量、数组元素或者对象属性;右边是一个任意类型的值,可以是常量、变象属性;右边是一个任意类型的值,可

23、以是常量、变量、也可以是数组元素或者对象属性。量、也可以是数组元素或者对象属性。n赋值运算符的作用就是将它右边的值赋给左边的变量赋值运算符的作用就是将它右边的值赋给左边的变量、数组元素或者对象属性。、数组元素或者对象属性。name = “无双无双”;m = n = 204;u带操作的赋值运算符带操作的赋值运算符n带操作的赋值运算符将简单的赋值运算符和其他一些带操作的赋值运算符将简单的赋值运算符和其他一些运算符结合在一起,提供了比较强大而简便的运算功运算符结合在一起,提供了比较强大而简便的运算功能。能。 “sum += number等同于等同于sum=sum+number3.22其它运算符其它运

24、算符u条件运算符(?:)条件运算符(?:)n条件运算符(?:)是一个三元运算符,它有三个运条件运算符(?:)是一个三元运算符,它有三个运算数,第一个运算数是布尔型,通常由一个表达式计算数,第一个运算数是布尔型,通常由一个表达式计算而来,第二个和第三个运算数可以是任意类型的数算而来,第二个和第三个运算数可以是任意类型的数据,或者任何形式的表达式。据,或者任何形式的表达式。n条件运算符的作用是:如果第一个运算数为条件运算符的作用是:如果第一个运算数为true,那么,那么条件表达式的值就是第二个运算数,如果第一个运算条件表达式的值就是第二个运算数,如果第一个运算数是数是false,那么条件表达式的值

25、就是第三个参数。例,那么条件表达式的值就是第三个参数。例如:如:x y ? x-y : y-x;3.23u逗号运算符(,)逗号运算符(,)n逗号运算符首先计算其左边的值,然后计算其右边的逗号运算符首先计算其左边的值,然后计算其右边的值,不过运算的结果是舍弃逗号左边的值,返回逗号值,不过运算的结果是舍弃逗号左边的值,返回逗号右边的值。例如:右边的值。例如:number = (2+5,4*6); n逗号运算符还可以用于分隔变量,例如:逗号运算符还可以用于分隔变量,例如:var m=10, n=20; u新建运算符(新建运算符(new)n新建运算符是一个一元运算符,用于创建新建运算符是一个一元运算符

26、,用于创建JavaScript对对象实例,例如:象实例,例如:var test = new Object();u删除运算符(删除运算符(delete)n删除运算符用于删除一个对象的属性或者一个数组的删除运算符用于删除一个对象的属性或者一个数组的某个元素,也可以用于取消它们原有的定义。例如:某个元素,也可以用于取消它们原有的定义。例如:delete arrayExample10其它运算符其它运算符3.24其它运算符其它运算符utypeof运算符运算符n其运算数可以是任意类型,运算结果返回一个字符串其运算数可以是任意类型,运算结果返回一个字符串,用于表示运算数的类型。,用于表示运算数的类型。uvoid运算符运算符nvoid运算符是一个一元运算

温馨提示

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

评论

0/150

提交评论