欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    第二章JavaScript.ppt

    • 资源ID:67242426       资源大小:1.63MB        全文页数:107页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第二章JavaScript.ppt

    第第2章章 JavaScript语言语言第二章(JavaScript)12/21/20221lJavaScriptJavaScriptJavaScriptJavaScript简介简介简介简介lJavaScriptJavaScriptJavaScriptJavaScript数据类型数据类型数据类型数据类型lJavaScriptJavaScriptJavaScriptJavaScript变量变量变量变量lJavaScriptJavaScriptJavaScriptJavaScript表达式和运算符表达式和运算符表达式和运算符表达式和运算符lJavaScriptJavaScriptJavaScriptJavaScript语句语句语句语句lJavaScriptJavaScriptJavaScriptJavaScript对象对象对象对象lJavaScriptJavaScriptJavaScriptJavaScript数组数组数组数组lJavascriptJavascriptJavascriptJavascript函数函数函数函数lJavaScriptJavaScriptJavaScriptJavaScript类和模块类和模块类和模块类和模块lWindowsWindowsWindowsWindows对象和对象和对象和对象和DocumentDocumentDocumentDocument对象对象对象对象l JavaScript简介简介 JavaScript是一种轻量级的、解释性的程序设计语言,而且具备一定面向对象的能力。JavaScript与操作系统无关,它依赖JavaScript的解释引擎。浏览器通过内嵌JavaScript的解释引擎从而获得了对JavaScript的处理能力。通过在网页中嵌入标签,将JavaScript脚本添加到网页中,使得网页不再是简单的静态HTML,而是包含了控制浏览器的程序、动态创建HTML内容和与用户交互的程序,即动态HTML(DHTML)JavaScript与与Java的区别的区别Java和JavaScript是两个完全不同的产品。Java是SUN公司推出的面向对象的程序设计语言;JavaScript是Netscape公司的产品,目的是为了扩展Netscape浏览器的功能Java是面向对象的程序设计语言,即使开发简单的程序也必须从类定义开始;JavaScript是基于对象的,本身提供了非常丰富的内部对象供设计人员使用Java语言的最小单位是类定义,而JavaScript中则充斥着大量函数Java语言必须经过编译生成字节码,然后由Java虚拟机运行这些字节码;JavaScript是一种脚本语言,其源代码无须经过编译,由浏览器解释执行12/21/20222JavaScript简介简介第二章(JavaScript语言)l JavaScript简介简介Java采用强类型变量,所有变量必须先声明后使用;JavaScript采用弱类型变量,变量使用前无须声明,而由解释器在运行时检查其数据类型Java代码是一种与HTML无关的格式,必须通过HTML中引用外媒体方式进行装载,其代码以字节码的形式保存在独立的文档中;JavaScript的代码是一种文本字符格式,可以直接嵌入HTML文档中,并且可动态装载JavaScript的的版本版本 JavaScript是由网景(Netscape)公司创建,标准版本的名字叫做ECMAScript,目前ECMAScript第3版已经被所有浏览器完整地实现了。ECMAScript第5版浏览器也已经开始实现它了,有时我们也会看到JavaScript的版本号(比如JavaScript1.5或JavaScript1.8)这些是Mozilla的版本号,1.5版本基本上就是ECMAScript3,后续版本包含了非标准的语言扩展12/21/20223JavaScript简介简介第二章(JavaScript语言)l 运行运行JavaScript(1)使用javascript:前缀构建执行JavaScript代码的URL 在设置URL的地方都可以使用这种以javascript:作为前缀的URL,在用户激发该URL时,javascript:之后的JavaScript代码就会获得执行(2)使用元素来包含JavaScript代码【2.1run】如果页面里需要包含大量JavaScript代码,则建议将这些JavaScript脚本放在标签和之间,元素既可作为子元素,也可作为子元素(3)导入JavaScript文件【2.1test】为了让HTML页面和JavaScript脚本更好地分离,我们可以将JavaScript脚本单独保存在一个*.js文件中,HTML页面导入该*.js文件即可。12/21/20224JavaScript简介简介第二章(JavaScript语言)lJavaScript基本数据类型基本数据类型 JavaScript的基本数据类型有5种:数值类型:包含整数和浮点数布尔类型:只有true和false两种值字符串类型:字符串变量必须以引号括起来,引号可以是单引号,也可以使双引号undefined类型:专门用来确定一个已经创建但是没有初值的变量null:用于表明某个变量的值为空除此之外,除此之外,JavaScript还支持复合数据类型:对象、数组、函数、以及一些对象类还支持复合数据类型:对象、数组、函数、以及一些对象类。数值类型数值类型【2.2simpleNumber2】JavaScript并不区分整型数值和浮点数值,所有的数字都是由浮点型表示的。JavaScript采用IEEE754标准定义的64位浮点格式来表示数字,所能表示的最大值为:1.797693134862315710303,最小值是510-324。JavaScript中的数值形式可以非常丰富,完全支持科学计数法表示。语法格式:数字数字1 E 数字数字2 12/21/20225JavaScript数据类型数据类型第二章(JavaScript语言)lJavaScript基本数据类型基本数据类型数值类型数值类型如果数值只有小数部分,则可以省略整数部分的0,但小数点不能省略【2.2simpleNumber2】e=.24e-2;数值直接量不要以0开始,因为JavaScript不仅支持十进制数,还支持其他进制的数,八进制和十六进制数都以0开始【2.2octal】a=0 x13;/十六进制十六进制 b=014;/八进制八进制当数值变量的值超出了其表值范围时,将出现两个特殊值:Infinity(无穷大)和-Infinity(负无穷大);Infinity、-Infinity与其他数值进行算术运算时,整个算术表达式将变成另一个特殊值:NaN;但Infinity和-Infinity都可以执行比较运算,即Infinity等于Infinity,而-Infinity等于-Infinity【2.2infinity】JavaScript中的算术运算允许除数为0,当除数和被除数同时为零,得到结果是NaN,正数除零的结果就是Infinity,负数除零的结果就是-InfinityNaN如果在算术表示中,整个算术表达式的值为NaN;NaN不会与任何数值变量相等,也就是NaN=NaN也返回false;JavaScript提供isNaN()函数来判断某个变量是否为NaN【2.2judgeNan】12/21/20226JavaScript数据类型数据类型第二章(JavaScript语言)lJavaScript基本数据类型基本数据类型字符串类型字符串类型字符串(string)是由单引号或者双引号括起来的Unicode字符序列,其中可以含有0个或多个字符。与C、C+或Java不同的是,JavaScript并没有char这种单个字符的数据类型,所以要表示单个字符,只能用长度为1的字符串来代替。JavaScript的字符串类型必须以引号括起来,此处的引号既可以是单引号也可以是双引号 a=Hello JavaScript b=Hello JavaScriptJavaScript中比较两个字符串的字符序列是否相等使用=即可,无须使用equals()方法12/21/20227JavaScript数据类型数据类型第二章(JavaScript语言)lJavaScript基本数据类型基本数据类型字符串类型字符串类型JavaScript操作字符串的方法:【2.2StringMethod】charAt():获取字符串特定索引处的字符charCodeAt():返回字符串中特定索引处的字符对应的Unicode值length:直接返回字符串的长度。JavaScript中的中文字符算一个字符toUpperCase():将字符串的所有字母转换成大写字母toLowerCase():将字符串的所有字符转换成小写字母fromCharCode():将系列Unicode值转换成字符串indexOf():返回字符串中特定字符串第一次出现的位置lastIndexOf():返回字符串中特定字符串最后一次出现的位置substring():返回字符串的某个子串slice():返回字符串的某个子串,支持负数参数match():使用正则表达式搜索目标子字符串search():使用正则表达式搜索目标子字符串concat():用于将多个字符串拼接成一个字符串split():将某个字符串分割成多个字符串,可以指定分隔符replace():将字符串中某个子串以特定字符串替代12/21/20228JavaScript数据类型数据类型第二章(JavaScript语言)lJavaScript基本数据类型基本数据类型Undefined和和null类型类型【2.2undefined】undefined类型的值只有undefined一个,该值用于表示某个变量不存在,或者没有为其分配值,也用于表示对象的属性不存在;null用于表示变量的值为空undefined和和null的区别:的区别:undefined表示没有为变量设置值,null表示将变量值设为空注意:很多注意:很多时候时候undefined和和null本身就相等,即本身就相等,即null=undefined将返回将返回true;如果;如果我们要精确区分我们要精确区分null和和undefined应该考虑使用精确等于符(应该考虑使用精确等于符(=)12/21/20229JavaScript数据类型数据类型第二章(JavaScript语言)lJavaScript复合复合数据类型数据类型 复合复合类型是由多个基本数据类型(也可以包含复合类型)组成的数据体类型是由多个基本数据类型(也可以包含复合类型)组成的数据体。对象(对象(Object)对象是一系列命名变量和函数的集合。其中命名变量的类型可以是基本数据类型,也可以是复合类型;对象中的命名变量称为属性,而对象中的函数称为方法;对象访问属性和函数的方法都是通过“.”来进行JavaScript提供了大量的内置对象和内置类,同时也允许用户自定义对象和类;JavaScript常用的内置类:常用的内置类:12/21/202210JavaScript数据类型数据类型第二章(JavaScript语言)类名类名说明说明类名类名说明说明Array数组类Date日期类Error错误类Function函数类Math数学类,包含执行数学运算的方法Number数值类Object对象类String字符串类数组(数组(Array)【2.2arr】数组是一系列的变量。与其他语言不同的是,JavaScript的数组中元素的类型可以不同JavaScript数组的三个数组的三个特征:特征:u数组的长度可变u同一个数组里数组元素的类型可以互不相同u访问数组元素时不会产生数组越界,访问并未赋值的数组元素时,该元素的值为undefined函数函数(Function)【2.2simpleFunction】函数可以是包含一段可执行性代码,也可以接收调用者传入的参数。JavaScript函数的四个函数的四个特征:特征:u无须声明返回值类型u无须声明形参类型u可以独立存在,无须属于任何类u必须使用function关键字定义12/21/202211JavaScript数据类型数据类型第二章(JavaScript语言)全局对象全局对象【2.2this】全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。通过使用全局对象,可以访问所有其他所有预定义的对象、函数和属性。全局对象不是任何对象的属性,所以它没有名称。全局对象的特征全局对象的特征:u全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。u全局对象不是任何对象的属性,所以它没有名称。u全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。u在顶层 JavaScript 代码中,可以用关键字 this 引用全局对象。u全局对象是作用域链的头,意味着在顶层 JavaScript 中声明的所有变量都将成为全局对象的属性。u通常不必用 this 引用全局对象,因为所有非限定性的变量和函数名都会作为全局对象的属性来查询。u通过使用全局对象,可以访问所有其他预定义的对象、函数和属性。u全局对象的预定义属性都是不可枚举的,所以可以用 for/in 循环列出所有隐式或显式声明的全局变量。全局全局属性:属性:NaN,Infinity,undefined全局函数:全局函数:eval,parseInt,parseFloat,isNaN,isFinite,decodeURI,encodedURI,encodeURIComponent全局构造函数:全局构造函数:Object,Function,Array,String,Boolean,Number,Date,RegExp,Error,EvalError,RangeError,ReferenceError,SyntaxError,TypeError,URIError其他属性的全局对象:其他属性的全局对象:Math,JSON12/21/202212JavaScript数据类型数据类型第二章(JavaScript语言)包装对象包装对象【2.2bz】var s=http:/;var addr=s.sbustring(s.indexOf(:)+2,s.length);JavaScript中不仅提供了数值类型、字符串类型和布尔类型,它同时还提供了数值类、字符串类和布尔类,这些类奖对应的原始数据类型包装了起来,它不但拥有其原始数据值,而且还定义了属性和操作值的方法。当你访问一个字符串的属性或方法时,JavaScript内部会自动创建其包装对象。这个字符串包装对象将替换原始字符串值,它拥有已定义的属性和方法只有当字符串以对象的方式使用时,它的对象才会被创建,并且这个对象时临时性的,在访问了它的属性或方法之后,即不再被使用,它将被系统所回收。这种临时性对象我们称为包装对象包装对象。我们也可以通过String(),Number()或Boolean()构造函数来显示创建包装对象注意:注意:=将原始值和其包装对象视为相等,但将原始值和其包装对象视为相等,但=将它们视为不等,通过将它们视为不等,通过typeof运算符运算符可以看到原始值和其包装对象的不通。可以看到原始值和其包装对象的不通。12/21/202213JavaScript数据类型数据类型第二章(JavaScript语言)原始值和对象原始值和对象【2.2ysz】JavaScript中的原始值(undefined、null、布尔值、数字和字符串)与对象、函数和数组有着根本区别。原始值是不可更改的,而对象是可变的。原始值是不可更改的,而对象是可变的。原始值的比较是值的比较,其中对于字符串来将如果两个单独的字符串,当它们的长度相等且每个索引的字符都相等时,JavaScript认为它们相等对象的比较并非值得比较,即使两个对象包含同样的属性及相同的值,它们也是不相等的,各个索引元素完全相等的两个数组也不相等,只有当它们引用同一个基对象时,它们才相等。12/21/202214JavaScript数据类型数据类型第二章(JavaScript语言)类型转换类型转换【2.2ysz】转换成布尔转换成布尔值值 方法:(1)使用!var o=23;alert(!o);/转换成字符串,结果是true (2)使用Boolean()var o=new Boolean(23);alert(o);/转换成字符串,结果是falseu1、数字转换成布尔、数字转换成布尔值值除了除了0被转换成被转换成false外,所有自他数字都会被转换成外,所有自他数字都会被转换成true,NaN 也总是被转换成也总是被转换成falseu2、字符串转换成布尔、字符串转换成布尔值值除了空字符串被转换成除了空字符串被转换成false外,所有字符串都会被转换成外,所有字符串都会被转换成true12/21/202215JavaScript数据类型数据类型第二章(JavaScript语言)u3、其他类型转换成布尔、其他类型转换成布尔值值undefined和和null会被转换成会被转换成false,任何对象任何对象(包括数组包括数组)和函数都会被转换成和函数都会被转换成true转换转换成字符串值成字符串值 方法:(1)使用一个字符串与之相加 10+3;(2)使用String()String(22);u1、数字转换成、数字转换成字符串字符串数字都是按原样转换成字符串,但用科学计数法表示的数字数字都是按原样转换成字符串,但用科学计数法表示的数字(也就是带也就是带e的的)会转换成它内部代表的真实会转换成它内部代表的真实的数字的的数字的字符串字符串当当null与数字相加时,不会进行字符串连接,而是会把与数字相加时,不会进行字符串连接,而是会把null转换成转换成0来进行数学来进行数学元素元素对于对于任意数组,将会转为任意数组,将会转为;对于;对于9(1个数字元素)将会转为个数字元素)将会转为9;12/21/202216JavaScript数据类型数据类型第二章(JavaScript语言)u2、其他类型转换成、其他类型转换成字符串字符串对于对于任意数组,将会转为任意数组,将会转为;对于;对于9(1个数字元素)将会转为个数字元素)将会转为9;当对象、数组或函数转换成字符串时,会调用它们的当对象、数组或函数转换成字符串时,会调用它们的 toString()方法来进行转换;方法来进行转换;数组类的数组类的toString()方法将每个数组元素转换为一个字符串,并在元素之间添加逗号后合并成结果字符方法将每个数组元素转换为一个字符串,并在元素之间添加逗号后合并成结果字符串串 1,2,3.toString()/1,2,31,2,3.toString()/1,2,3函数类的函数类的toString()方法返回这个函数的实现定义的表示方式,通常是将用户定义的函数转换为方法返回这个函数的实现定义的表示方式,通常是将用户定义的函数转换为JavaScript源代码字符串源代码字符串 (function(x)f(x);).toString()/function(x)n f(x);nfunction(x)f(x);).toString()/function(x)n f(x);n日期类的日期类的toString方法返回了一个可读的日期和时间字符串方法返回了一个可读的日期和时间字符串 new new Date(2010,0,1).toString()/Fri Jan 01 2010 00:00:00 GMT-0800(PST)Date(2010,0,1).toString()/Fri Jan 01 2010 00:00:00 GMT-0800(PST)正则表达式类的正则表达式类的toString()方法将正则表达式对象转换为表示正则表达式直接量的字符串方法将正则表达式对象转换为表示正则表达式直接量的字符串 /d+/g.toString()/d+/gd+/g.toString()/d+/g除了除了toString()方法外,还有一个转换对象的函数方法外,还有一个转换对象的函数valueOf(),如果存在任意原始值,它就默认将对象转如果存在任意原始值,它就默认将对象转换为表示它的原始值,而换为表示它的原始值,而对象是复合对象是复合值,默认将值,默认将简单的返回简单的返回对象本身,而不是返回一个原始值;日期类对象本身,而不是返回一个原始值;日期类会返回它的一个内部表示:会返回它的一个内部表示:1970年年1月月1日以来的毫秒日以来的毫秒数数12/21/202217JavaScript数据类型数据类型第二章(JavaScript语言)u2、其他类型转换成、其他类型转换成字符串字符串JavaScript中对象到字符串的转换经过如下步骤:中对象到字符串的转换经过如下步骤:如果对象具有如果对象具有toString()方法,则调用这个方法。如果它返回一个原始值,方法,则调用这个方法。如果它返回一个原始值,JavaScript将这个值转换将这个值转换为字符串(如果本身不是字符串的话),并返回这个字符串结果。为字符串(如果本身不是字符串的话),并返回这个字符串结果。如果对象没有如果对象没有toString()方法,或者这个方法并不返回一个原始值,那么方法,或者这个方法并不返回一个原始值,那么JavaScript会调用会调用valueOf()方法。如果存在这个方法,则方法。如果存在这个方法,则JavaScript调用它。如果返回值是原始值,调用它。如果返回值是原始值,JavaScript将这个值转换将这个值转换为字符串,并返回这个字符串结果为字符串,并返回这个字符串结果否则,否则,JavaScript无法从无法从toString()或或valueOf()获得一个原始值,因此这时它将抛出一个类型错误获得一个原始值,因此这时它将抛出一个类型错误异常异常12/21/202218JavaScript数据类型数据类型第二章(JavaScript语言)转换成数字值转换成数字值 方法:(1)使用一个一元的加号运算符,这是最快的方法 +x (2)加号以外的其他数学运算符 x-0 或或 x*1 (3)使用Number()构造函数进行转换 Number(x)1、字符串转换成、字符串转换成数字数字除了空字符串会被转换成除了空字符串会被转换成0以外,如果字符串中是正确的数字书写形式,那么都可以顺利转换成相应的以外,如果字符串中是正确的数字书写形式,那么都可以顺利转换成相应的数字,不管是小数、科学计数还是八进制、十六进制形式等。但是如果参杂了其他不能构成数字或不符数字,不管是小数、科学计数还是八进制、十六进制形式等。但是如果参杂了其他不能构成数字或不符合数字书写规则的东西,则会被转换成合数字书写规则的东西,则会被转换成NaN。NaN是指不是数字的意思,任何数字数字跟是指不是数字的意思,任何数字数字跟NaN进行运算得到的结果都是进行运算得到的结果都是NaN,NaN甚至跟自己也不相甚至跟自己也不相等。等。12/21/202219JavaScript数据类型数据类型第二章(JavaScript语言)2、其它类型转换成其它类型转换成数字数字对象和函数总是被转换成对象和函数总是被转换成NaN,undefined也会被转换成也会被转换成NaN,但但null会被转换成会被转换成0数组会首先被转换成字符串,然后再转换成数字数组会首先被转换成字符串,然后再转换成数字。JavaScript中对象到数字的转换经过如下步骤:中对象到数字的转换经过如下步骤:如果对象具有如果对象具有valueOf()方法,后者返回一个原始值,则方法,后者返回一个原始值,则JavaScript将这个原始值转换为数字(如果将这个原始值转换为数字(如果需要的话)并返回这个数字需要的话)并返回这个数字否则,如果对象具有否则,如果对象具有toString()方法,后者返回一个原始值,则方法,后者返回一个原始值,则JavaScript将其转换并返回将其转换并返回否则,否则,JavaScript抛出一个类型错误异常抛出一个类型错误异常12/21/202220JavaScript数据类型数据类型第二章(JavaScript语言)l变量声明变量声明 在JavaScript程序中,使用一个变量之前应当先声明。变量是使用关键字var来声明的。var i;var i,sum;var message=hello;如果未在var声明语句中给变量指定初始值,那么虽然声明了这个变量,但在给它存入一个值之前,它的初始值就是undefined。JavaScript的变量可以在程序中被先后赋予不同数据类型的值l变量的作用域变量的作用域 变量按照作用域的不同,一般分为全局变量和局部变量。全局变量拥有全局作用域,在JavaScript代码中的任何地方都是有定义的;局部变量,作用域是局部性的;在函数内声明的变量只在函数体内有定义,是局部变量;函数的参数也是局部变量;【2.3scope_test】12/21/202221JavaScript变量变量第二章(JavaScript语言)l变量的作用域变量的作用域在函数体内,局部变量的优先级高于同名的全局变量。如果在函数体内声明的一个局部变量或者函数参数中带有的变量和全局变量重名,那么全局变量就被局部变量所遮盖【2.3noBlockScope】var scope=global;function checkscope()var scope=local;document.write(scope);全局变量编写代码时可以不写var,但声明局部变量时则必须使用varscope=global;function checkscope()scope=local;document.write(scope);变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有意义的。这意味着变量在声明之前甚至已经可用【2.3noBlockScope2】var scope=global;function checkscope()document.write(scope);var scope=local;document.write(scope);12/21/202222JavaScript变量变量第二章(JavaScript语言)l算术运算符算术运算符JavaScript的算术运算符主要有:1加法运算符(+)2减法运算符(-)3乘法运算符(*)4除法运算符(/)5模运算(%)6递增运算符(+)7递减运算符(-)“+”运算符运算符规则:规则:优先考虑字符串连接 如果其中一个操作数是字符串或转换为字符串的对象,另外一个操作数将会转为字符串,加法将进行字符串的连接操作;如果两个操作数都不是字符串,那么都将进行算术加法运算 当加号运算符和字符串和数字一起使用时,运算结果将依赖于运算符的运算顺序12/21/202223JavaScript运算符运算符第二章(JavaScript语言)“+”运算符运算符举例:举例:12/21/202224JavaScript运算符运算符第二章(JavaScript语言)“+”和和“-”运算符运算符规则规则:“+”“-”运算符从不进行字符串连接操作,它总是会将操作数转换为数字并加1或减1 不能再后增量运算符和操作数之间插入换行符,如果插入了换行符,JavaScript将会把操作数当做一条单独的语句,并在其之前补上一个分号举例:举例:x=x+1和+x并不一定相等 如果x为“1”,那么x=x+1的结果就是“11”,而+x的结果是2“/”和和“%”运算符运算符规则规则:当一个整数除以另一个整数时,得到的结果将是浮点型 当除数为0的运算结果为正无穷大或负无穷大,0/0的结果是NaN,所有这些运算均不会报错 求模操作的结果符号和第一个操作数的符号保持一致 求模操作也适用于浮点数举例举例:5/2 /=2.5而不是2 -5%2 /=-1 6.5%2 /=0.212/21/202225JavaScript运算符运算符第二章(JavaScript语言)l位运算符位运算符JavaScript的位运算符主要有:&:按位与|:按位或:按位非:按位异或:右位移:无符号右移12/21/202226JavaScript运算符运算符第二章(JavaScript语言)规则:规则:位运算要求它的操作数是整数 位运算会将NaN、Infinity和-Infinity转换为0 按位与,只有两个操作数中相对应的位都是1,结果中的这一位才是1 按位或,如果其中一个操作数相应的位为1,或者两个操作数相应位都是1,那么结果中的这一位就为1 按位异或,如果两个操作数中只有一个相应位为1,那么结果中的这一位就是1 按位非,将操作数的所有位取反 左移,将第一个操作数的所有二进制位进行左移,移动的位数由第二个操作数指定,新的一位用0补充 右移,将第一个操作数的所有二进制位进行右移,移动的位数由第二个操作数指定,如果第一个操作数是正数,移位后用0补充,如果第一个操作数是负的,移位后用1补充 无符号右移,与右移规则基本一致,只是左边的高位总是补充0举例:举例:0 x1234&0 x00FF=0 x0034 0 x1234|0 x00FF=0 x12FF 0 xFF00 0 x00FF=0 x12FF 0 x0F=0 xFFFFFFF0 71=3 -71=-4 -14=0 x0FFFFFFF12/21/202227JavaScript运算符运算符第二章(JavaScript语言)l比较运算符比较运算符JavaScript的比较运算符主要有:大于=:大于等于:小于=:小于等于!=:不等于=:等于!=:严格不等于=:严格等于“=”严格相等运算符严格相等运算符规则规则:“=”首先首先计算其操作数的值,然后比较这两个值,比较过程没有任何类型计算其操作数的值,然后比较这两个值,比较过程没有任何类型转换转换 如果两个值类型不相同,则它们不相等 如果两个值都是null或者都是undefined,则它们不相等 如果两个值都是布尔值真或假,则它们不相等12/21/202228JavaScript运算符运算符第二章(JavaScript语言)“=”严格相等运算符严格相等运算符规则规则:如果其中一个值是NaN,或者两个值都是NaN,则它们不相等 如果两个值为数字且数值相等,则它们相等 如果一个值为0,另一个值为-0,则它们相等 如果两个值为字符串,且所含的对应位上的16位数完全相等,则它们相等 如果它们的长度或内容不同,则它们不等 如果两个引用值指向同一个对象、数组或函数,则它们相等“=”相等运算符相等运算符规则规则:如果如果两个操作数不是同一类型,首先会尝试进行一些类型转换,然后进行比较两个操作数不是同一类型,首先会尝试进行一些类型转换,然后进行比较 如果如果两个操作数类型不同,两个操作数类型不同,“=”也也可能会认为它们相等,检测相等将会遵守如下规可能会认为它们相等,检测相等将会遵守如下规则和类型转换:则和类型转换:如果一个值是null,另一个是undefined,则它们相等 如果一个值是数字,另一个是字符串,先将字符串转换为数字,然后使用转换后的值进行比较 如果一个值true,则将其转换为1再进行比较;如果一个值false,则将其转换为0再进行比较12/21/202229JavaScript运算符运算符第二章(JavaScript语言)“=”相等运算符相等运算符规则规则:如果一个值是对象,另一个值是数字或字符串,则先将对象转换为原始值,然后再进行比较 其他不同类型之间的比较均不相等()、()、(=)规则:规则:如果两个操作数是对象,先转换为原始值;在对象转换为原始值后,如果两个操作数都是字符串,那么将按照该字符串的16位Unicode字符的索引顺序进行比较 在对象转换为原始值后,如果至少有一个操作数不是字符串,那么两个操作数都将转换为数字进行数值比较 Infinity比其他任何数字都大,-Infinity比其他任何数字都小,如果其中一个操作数是NaN,那么比较操作符总返回false12/21/202230JavaScript运算符运算符第二章(JavaScript语言)in运算符运算符规则:规则:in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望它的右操作数是一个对象 如果右侧对象拥有一个名为左操作数值的属性名,那么返回trueinstanceof运算符运算符规则:规则:instanceof运算符希望左操作数是一个对象,右操作数标识对象的类 如果左侧的对象是右侧的实例,则返回true12/21/202231JavaScript运算符运算符第二章(JavaScript语言)l逻辑运算符逻辑运算符JavaScript的逻辑运算符主要有:逻辑与(&)逻辑或(|)逻辑非(!)“&”逻辑与运算符逻辑与运算符三层理解三层理解:第一层:当操作数都是布尔值的时候,“&”对两个值执行“与”操作,只有在第一个操作数和第二个操作数都是true的时候,它才返回true;如果其中一个操作数是false,它返回false 第二层:当操作数不一定是布尔值的时候,有些值可以当做“真值”和“假值”(如:false、null、undefined、0、-0、NaN和都是假值,其他的值包括对象都是真值),“&”可以对真值和假值进行“与”操作,如果两个操作数都是真值,那么返回一个真值;否则,至少一个操作数是假值的话,则返回一个假值 第三层:“真值”和“假值”到底是什么值呢,“&”首先计算左操作数的值,如果结果是假值,那么整个表达式的结果一定也是假值,因此“&”简单地返回做操作数的值,而并不会对右操作数进行计算;如果左操作数是真值,那么整个表达式的结果则依赖于右操作数的值,如果右操作数是真值,那么整个表达式的值一定是真值;如果是假值,那么整个表达式的值一定是假值,因此“&”将计算右操作数的值并返回作为整个表达式的计算结果12/21/202232JavaScript运算符运算符第二章(JavaScript语言)“|”逻辑或运算符逻辑或运算符规则:规则:首先计算左操作数的值,如果结果为真,那么返回这个真值;否则,计算右操作数的值,并返回这个表达式的计算结果“!”逻辑非运算符逻辑非运算符规则规则:首先将操作数转换为布尔值,然后再对布尔值求反,也就是说“!”总是返回true或false,并且我们可以通过使用两次逻辑非运算来得到一个值的等价布尔值12/21/202233JavaScript运算符运算符第二章(JavaScript语言)l赋值运算符赋值运算符JavaScript使用“=”作为赋值运算符号来给变量或者属性赋值“=”运算符运算符规则:规则:“=”具有非常低的优先级,通常在一个较长的表达式中用到了一条赋值语句的值的时候,需要补充圆括号以保证正确的运算顺序 赋值操作符的结合性是从右至左 i=j=k=0 /把三个变量初始化为0加强的赋值运算符加强的赋值运算符12/21/202234JavaScript运算符运算符第二章(JavaScript语言)+=:对于x+=y,对应于x=x+y-=:对于x-=y,对应于x=x-y*=:对于x*=y,对应于x=x*y/=:对于x/=y,对应于x=x/y%=:对于x%=y,对应于x=x%y&=:对于x&=y,对应于x=x&y|=:对于x|=y,对应于x=x|y=:对于x=y,对应于x=xy=:对于x=y,对应于x=x=:对于x=y,对应于x=xy=:对于x=y,对应于x=xyl其他运算符其他运算符条件运算符(条件运算符(?:)规则:规则:条件运算符的操作数可以是任意类型,第一个操作数当成布尔值,如果它是真值,那么僵计算第二个操作数,并返回计算结果;否则,如果第一个操作数是假值,那么将计算第三个操作数,并返回其计算结果;第二个和第三个操作数总是会计算其中之一,不可能两者同时执行typeof运算符运算符规则:规则:typeof操作数可以是任意类型,返回值表示操作数类型的一个字符串赋值操作符的结合性是从右至左12/21/2

    注意事项

    本文(第二章JavaScript.ppt)为本站会员(s****8)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开