1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2021/9/11,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2021/9/11,#,JavaScript,程序设计,第,1,章,JavaScript,简介,1.1,什么是,JavaScript,1.2 JavaScript,与,Java,区别,1.3 JavaScript,能做什么,1.4 JavaScript,实现,JavaScript,程序设计,第,1,章,JavaScript,简介,1.5 JavaScript,环境搭建,1.6,编写第一个,JavaScri
2、pt,程序,JavaScript,程序设计,什么是,JavaScript,特点:,简单性 动态性 跨平台性 节省服务器的开销,JavaScript,是一种基于对象,(Object),和事件驱动,(EventDriven),并具有安全性能的脚本语言。,1.1,什么是,JavaScript,第,1,章,JavaScript,简介,JavaScript,程序设计,基于对象和面向对象,解释和编译,强变量和弱变量,代码格式不一样,嵌入方式不一样,静态联编和动态联编,1.2 JavaScript,与,Java,区别,第,1,章,JavaScript,简介,JavaScript,程序设计,JavaScrip
3、t,能做什么,与用户交互 提供反馈 创建自定义,Web,界面 处理表单 设置,cookie,1.3 JavaScript,能做什么,第,1,章,JavaScript,简介,JavaScript,程序设计,JavaScript,不能做什么,(,1,),JavaScript,不允许写服务器机器上的文件。,(,2,),JavaScript,不能关闭不是由它自己打开的窗口。,(,3,),JavaScript,不能从来自另一个服务器的已经打开的网页中读取信息。,1.3 JavaScript,能做什么,第,1,章,JavaScript,简介,JavaScript,程序设计,JavaScript,实现,1.
4、4 JavaScript,实现,第,1,章,JavaScript,简介,JavaScript,程序设计,文档对象模型,DOM,Sample Page,hello world!,1.4 JavaScript,实现,第,1,章,JavaScript,简介,JavaScript,程序设计,浏览器对象模型,BOM,BOM,主要处理浏览器窗口和框架,不过通常浏览器特定的,JavaScript,扩展都被看做,BOM,的一部分,:,(,1,),弹出新的浏览器窗口,;,(,2,),移动、关闭浏览器窗口以及调整窗口大小,;,(,3,)提供,Web,浏览器详细信息的定位对象,;,(,4,)提供用户屏幕分辨率详细信
5、息的屏幕对象,;,(,5,)对,cookie,的支持,;,(,6,),IE,扩展了,BOM,,加入了,ActiveXObject,类,可以通过,JavaScript,实例化,ActiveX,对象,;,1.4 JavaScript,实现,第,1,章,JavaScript,简介,JavaScript,程序设计,环境搭建,(,1,)浏览器,;,(,2,),Web,服务器(,wamp,),;JavaScript,环境搭建,第,1,章,JavaScript,简介,JavaScript,程序设计,示例代码,/JavaScript Appears here,alert(,这是第一个,JavaScript,例
6、子,!);,alert(,欢迎你进入,JavaScript,世界,!);,1.6,编写第一个,JavaScript,程序,第,1,章,JavaScript,简介,JavaScript,程序设计,什么是,JavaScript,JavaScript,与,Java,区别,JavaScript,能做什么,JavaScript,实现,JavaScript,环境搭建,编写第一个,JavaScript,程序,总结,第,1,章,JavaScript,简介,JavaScript,程序设计,谢谢观看,JavaScript,程序设计,第,2,章,JavaScript,基本语法,2.1 JavaScript,在,HT
7、ML,中的使用,2.2 JavaScript,代码调试方式,2.3,语句,2.4,变量,JavaScript,程序设计,第,2,章,JavaScript,基本语法,2.5,数据类型,2.6,表达式和运算符,2.7,关键字及保留字,2.8,正则表达式,JavaScript,程序设计,第,2,章,JavaScript,基本语法,2.9,注释,2.10,实战:加减运算,JavaScript,程序设计,2.1 JavaScript,在,HTML,中的使用,两种方式使用,(,1,)直接在页面上嵌入,JavaScript,代码;,(,2,)引用独立的,js,文件;,第,2,章,JavaScript,基本语
8、法,JavaScript,程序设计,2.2 JavaScript,代码调试方式,三种代码调试方式,(,1,)使用,alert(),弹出警告框;,(,2,),使用,document.write(),方法将内容写到,HTML,文档中,;,(,3,),使用,console.log(),写入到浏览器控制台,;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.2 JavaScript,代码调试方式,三种代码调试方式比较,(,1,),如果在文档已完成加载后执行,document.write,,整个,HTML,页面将被覆盖,对程序执行造成不便,;,(,2,),alert(),
9、函数会阻断,JavaScript,程序的执行,从而造成副作用,而且使用,alert(),方法需要点击弹窗的确认按钮操作麻烦,最重要的是,alert(),只能输出字符串,;,(,3,),console.log(),仅在控制台打印相关信息,不会对,JavaScript,程序执行造成阻隔,此外,,console.log(),可以接受任何字符串、数字和,JavaScript,对象,可以看到清楚的对象属性结构,在,ajax,返回,json,数组对象时调试很方便,;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.3,语句,语句,JavaScript,语句是向浏览器发出的命
10、令,;,var a=1+2;,var a=1+2;var b=abc;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.4,变量,变量概念及命名,(,1,),变量以字母开头,;,(,2,),变量也能以,$,和,_,开头(不过不推荐这么做),;,(,3,),变量名不能包含空格或其他标点符号,;,(,4,),变量名称对大小写敏感(,a,和,A,是不同的变量),;,var a;/,声明变量,a,a=1;/,给变量,a,赋值为,1,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.4,变量,变量作用域,(,1,)全局变量;,(,2,)局部变
11、量;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.4,变量,变量提升,JavaScript,引擎工作方式是:先解析代码,获取所有被声明的变量,然后再一行一行的运行代码。这样所有变量声明语句都会被提升到代码头部执行。这就叫做变量提升。,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.5,数据类型,基本数据类型,(,1,),String,类型;,(,2,),Number,类型;,(,3,),Boolean,类型;,(,4,),Undefined,类型;,(,5,),Null,类型;,第,2,章,JavaScript,基本语法,Ja
12、vaScript,程序设计,2.5,数据类型,引用数据类型,(,1,),Object,类型;,(,2,),Array,类型;,(,3,),Date,类型;,(,4,),RegExp,类型;,(,5,),Function,类型;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.5,数据类型,基本数据类型和引用数据类型的区别,(,1,),声明变量时不同的内存分配,;,(,2,),不同的内存分配机制也带来了不同的访问机制,;,(,3,),复制变量时的不同,;,(,4,),参数传递的不同,;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2
13、5,数据类型,数据类型转换,(,1,),利用转换函数,;,(,2,),强制类型转换,;,(,3,),利用,JavaScript,变量弱类型转换,;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.6,表达式和运算符,表达式和运算符概念,(,1,),表达式是各种数值、变量、运算符的综合体,最简单的表达式可以是常量或者变量名称,;,(,2,),运算符是变量中用来处理运算数的各种符号,;,常量表达式:,hello,;变量表达式:,example,;赋值表达式:,string=”hello world”,。,第,2,章,JavaScript,基本语法,JavaScri
14、pt,程序设计,2.6,表达式和运算符,运算符类型,(,1,),一元运算符,;,(,2,),算术运算符,;,(,3,)关系,运算符,;,(,4,)逻辑,运算符,;,(,5,)位,运算符,;,(,6,)赋值,运算符,;,(,7,)其他,运算符,;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.6,表达式和运算符,运算符优先级,(,1,),+-+!delete typeof void,(一元运算符、返回数据类型、对象创建、未定义值);,(,2,),*/%,(乘法、除法、取余);,(,3,),+-,(加法、减法、字符串连接);,(,4,),(移位);,(,5,),=
15、instanceof in,(小于、小于等于、大于、大于等于、,instanceof,);,(,6,),=!=!=,(等于、不等于、严格相等、非严格相等);,(,7,),&,(按位与);,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.6,表达式和运算符,运算符优先级,(,8,),(按位异或);,(,9,),|,(按位或);,(,10,),&,(逻辑与);,(,11,),|,(逻辑或);,(,12,),?,(条件);,(,13,),=*=/=%=+=-=&=|=,(赋值、运算赋值);,(,14,),(多重求值),;,第,2,章,JavaScript,基本语法,J
16、avaScript,程序设计,2.6,表达式和运算符,运算符优先级,运算符优先级等级:,一元运算符,算术运算符,比较运算符,逻辑运算符,三元运算符,赋值运算符,逗号运算符,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.7,关键字及保留字,关键字,(,1,),break do instanceof typeof,;,(,2,),case else new var,;,(,3,),catch finally return void,;,(,4,),continue for switch while,;,(,5,),debugger*,;,(,6,),functio
17、n this with,;,(,7,),default if throw,;,(,8,),delete in try,;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.7,关键字及保留字,保留字,(,1,),abstract enum int short,;,(,2,),boolean export interface static,;,(,3,),byte extends long super,;,(,4,),char final native synchronized,;,(,5,),class float package throws,;,(,6,),c
18、onst goto private transient,;,(,7,),debugger implements protected volatile,;,(,8,),double import public,;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.8,正则表达式,正则表达式定义及特性,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑,var reg=/abcd/;/,这个叫对象直接量方式,var reg=new RegExp(abcd
19、);/,这个叫构造函数方式,var reg=/abcd/g;,var reg=new RegExp(abcd,g);,reg=new RegExp(w+);/,这里的,要转义,reg=/w+/;/,这样就不需要,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.8,正则表达式,正则表达式语法,正则表达式是由普通字符(例如字符,a,到,z,)以及特殊字符(称为,元字符,)组成的文字模式。模式描述在搜索文本时要匹配一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。,第,2,章,JavaScript,基本语法,JavaScript,程序设
20、计,2.8,正则表达式,普通字符,普通字符包括没有显式指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母、所有数字、所有标点符号和一些其他符号;,第,2,章,JavaScript,基本语法,JavaScript,程序设计,2.8,正则表达式,非打印字符,第,2,章,JavaScript,基本语法,JavaScript,程序设计,字符,描述,cx,匹配由,x,指明的控制字符。例如,,cM,匹配一个,Control-M,或回车符。,x,的值必须为,A-Z,或,a-z,之一。否则,将,c,视为一个原义的,c,字符。,f,匹配一个换页符。等价于,x0c,和,cL,。,n,匹配一个换行符。
21、等价于,x0a,和,cJ,。,r,匹配一个回车符。等价于,x0d,和,cM,。,s,匹配任何空白字符,包括空格、制表符、换页符等等。等价于,fnrtv,。,S,匹配任何非空白字符。等价于,fnrtv,。,t,匹配一个制表符。等价于,x09,和,cI,。,v,匹配一个垂直制表符。等价于,x0b,和,cK,。,2.8,正则表达式,特殊字符,第,2,章,JavaScript,基本语法,JavaScript,程序设计,特殊字符,描述,$,匹配输入字符串的结尾位置。如果设置了,RegExp,对象的,Multiline,属性,,则,$,也匹配,n,或,r,。要匹配,$,字符本身,请使用,$,。,(),标记
22、一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用,(,和,),。,*,匹配前面的子表达式零次或多次。要匹配,*,字符,请使用,*,。,+,匹配前面的子表达式一次或多次。要匹配,+,字符,请使用,+,。,.,匹配除换行符,n,之外的任何单字符。要匹配,.,,请使用,.,。,标记一个中括号表达式的开始。要匹配,,请使用,。,?,匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配,?,字符,请使用,?,。,将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进,制转义符。例如,,n,匹配字符,n,。,n,匹配换行符。序列,匹配,,,而,(,则匹配,(,
23、匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表,示不接受该字符集合。要匹配,字符本身,请使用,。,标记限定符表达式的开始。要匹配,,请使用,。,|,指明两项之间的一个选择。要匹配,|,,请使用,|,。,2.8,正则表达式,限定符,第,2,章,JavaScript,基本语法,JavaScript,程序设计,字符,描述,*,匹配前面的子表达式零次或多次。例如,,zo*,能匹配,z,以及,zoo,。,*,等价于,0,。,+,匹配前面的子表达式一次或多次。例如,,zo+,能匹配,zo,以及,zoo,,但不能匹配,z,。,+,等价于,1,。,?,匹配前面的子表达式零次或一次。例如,,d
24、o(es)?,可以匹配,do,或,does,中的,do,。,?,等价于,0,1,。,n,n,是一个非负整数。匹配确定的,n,次。例如,,o2,不能匹配,Bob,中的,o,,但是能匹配,food,中的两个,o,。,n,n,是一个非负整数。至少匹配,n,次。例如,,o2,不能匹配,Bob,中,的,o,,但能匹配,foooood,中的所有,o,。,o1,等价于,o+,。,o0,则,等价于,o*,。,n,m,m,和,n,均为非负整数,其中,n 30),alert(i,大于,30);,else if(i 0),alert(i,小于,0);,else,alert(i,在,0,到,30,之间,);,第,3,
25、章,JavaScript,程序构成,JavaScript,程序设计,3.1,程序控制流,for,循环语句,for(initialization;expression;post-loop-expression)statement;,var count=10;,for(var i=0;i count;i+),alert(i);,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.1,程序控制流,for.in,循环语句,for(property in expression)statement;,for(var propName in window),document.wr
26、ite(propName);,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.1,程序控制流,while,循环语句,while(expression)statement;,var i=0;,while(i 10),alert(i);,i+=2;,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.1,程序控制流,label,语句,label:statement,start i:5,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.1,程序控制流,break,和,continue,语句,break,和,co
27、ntinue,语句用于循环中精确地控制代码的执行。,break,语句可以立即退出循环,阻止再次反复执行任何代码。而,continue,语句只是退出当前循环,根据控制表达式还允许继续进行下一次循环。,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.1,程序控制流,do.,while,语句,dostatements;while(condition),do x=x+The number is +i+;,i+;,while(i5);,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.1,程序控制流,switch,语句,switch(expr
28、ession),case value:statement;,break;,default:statement;,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.2,函数,函数表达式及语法,两种常用的定义函数方式:第一种:使用函数声明语法,第二种:使用函数表达式定义。,function sum(num1,num2),/,函数体,var sum=function(num1,num2),/,函数体,;,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.2,函数,函数参数,JavaScript,函数的参数与大多数其他语言的函数参数有所不同。
29、函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型。甚至可以不传参数。,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.2,函数,函数返回值,JavaScript,函数返回值关键字是,return,。一个函数内处理的结果可以使用,return,返回,这样在调用函数的地方就可以用变量接收返回结果。,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.2,函数,函数,4,种调用模式,(,1,)函数调用模式;,(,2,)方法调用模式;,(,3,)构造器调用模式;,(,4,),Apply,调用模式;,第,3,章,JavaScri
30、pt,程序构成,JavaScript,程序设计,3.2,函数,apply,和,call,的区别,call,方法:,语法定义为:,call(thisObj,arg1,arg2,.argN),参数,thisObj,为可选项。将被用作当前对象的对象。,arg1,,,arg2,,,argN,也为可选项,传递的参数序列;,apply,方法:,语法定义为:,apply(thisObj,argArray),;,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.2,函数,递归调用,递归函数,:,就是在函数体内调用函数本身。,function factorial(num),if(n
31、um=1),return 1;,else,return num*factorial(num-1);,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.2,函数,函数作用域,var scope=global;,function fun(),console.log(scope);,var scope=local;,console.log(scope);,fun();,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.2,函数,异常处理,try,/,可能发生错误的代码,catch(error),/,发生错误时处理方式,第,3,章,JavaS
32、cript,程序构成,JavaScript,程序设计,3.2,函数,闭包,闭包就是能够读取其他函数内部变量的函数;,function fun1(),var n=999;,nAdd=function()n+=1,function fun2(),console.log(n);,return fun2;,var result=fun1();,result();,nAdd();,result();,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.3,事件及事件处理,事件,JavaScript,与,HTML,之间的交互是通过事件来实现的。事件,就是文档或浏览器窗口中发生的
33、一些特定的交互瞬间。,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.3,事件及事件处理,常用事件,(,1,)窗口事件:,onLoad,、,onUnload,、,onResize,、,onMove,、,onAbort,、,onError,、,onFocus,、,onBlur,;,(,2,)鼠标事件:,onClick,、,onDbClick,、,onMouseDown,、,onMouseUp,、,onMouseOver,、,onMouseOut,、,onMouseMove,;,(,3,)表单事件:,onBlur,、,onChange,、,onFocus,、,onR
34、eset,、,onSubmit,;,(,4,)键盘事件:,onKeyPress,、,onKeyDown,、,onKeyUp,;,第,3,章,JavaScript,程序构成,JavaScript,程序设计,3.4,实战:,Bingo,卡片游戏,实战,(,1,)案例描述,用,JavaScript,循环实现,Bingo,卡片游戏。,Bingo,卡片是,5*5,的方形,,5,个列上标着,B-I-N-G-O,,格子里包含,175,的数字。正中间通常是一个空的格子,印着单词,free,。每列可以包含的数字的范围是:,B,列包含数字,115,;,I,列包含数字,1630,;,N,列包含数字,3145,;,G
35、列包含数字,4660,;,O,列包含数字,6175,。,(,2,)实现思路,Bingo,卡片总共有,24,个空格需要填充数字,且每个数字互不重复;每列数字有固定的取值范围。这样首先需要创建一个,for,循环,用,i,作循环变量,循环,24,次;每次循环调用函数依次往,Bingo,卡片中的空格插入数字。,第,3,章,JavaScript,程序构成,JavaScript,程序设计,总结,程序控制流,函数,事件及事件处理,第,3,章,JavaScript,程序构成,JavaScript,程序设计,谢谢观看,JavaScript,程序设计,第,4,章,JavaScript,对象,4.1,对象简介,4
36、2,创建对象,4.3,对象特性,4.4,单体内置对象,JavaScript,程序设计,第,4,章,JavaScript,对象,4.5,实战:产生,n,个不重复随机数,JavaScript,程序设计,4.1,对象简介,对象,所谓对象,就是一种无序的数据集合,由若干个,“,键值对,”,(,key-value,)构成,;,var o=,p:Hello World,;,第,4,章,JavaScript,对象,JavaScript,程序设计,4.1,对象简介,对象属性,第,4,章,JavaScript,对象,JavaScript,程序设计,属性,属性类型,描述,Prototype,对象,对象的原型,用
37、来实现继承功能的关键对象,Class,字符串,描述对象类型的字符串值,使用,typeof,操作符返回的结果,Get,函数,返回属性值。获取指定属性名的值,Put,函数,设置指定的属性值。为指定的属性赋值,CanPut,函数,返回指定属性是否可用通过,Put,操作设置值,HasProperty,函数,返回对象是否有指定的属性,Delete,函数,从对象中删除指定属性,DefaultValue,函数,返回对象的默认值,只能是原始值,不能是引用类型,Construct,函数,通过,new,操作符创建一个对象。实现了这个内部属性的对象被叫做构造,函数(可以理解为类),Call,函数,执行关联在对象上的
38、代码,通过函数表达式调用(也就是通过函数名,调用函数),实现了这个内部方法的对象被叫做函数,HasInstance,函数,返回给定的值是否扩展了当前对象的属性和行为(可以理解为给定的,对象是否为本类创建的对象),在,JavaScript,本地对象中,只要,Function,对象实现了这个属性,Scope,对象,作用域链定义了一个函数的执行环境,4.2,创建对象,对象字面量模式创建对象,var person=,name:Nicholas;,age:22;,job:software Engineer;,sayName:function(),alter(this.name);,第,4,章,JavaS
39、cript,对象,JavaScript,程序设计,4.2,创建对象,工厂模式创建对象,function createPerson(name,age,job),var o=new Object();,o.name=name;,o.age=age;,o.job=job;,o.sayName=function(),alert(this.name);,;,return o;,var person1=createPerson(Nicholas,22,software Engineer);,var person2=createPerson(Greg,24,student);,第,4,章,JavaScrip
40、t,对象,JavaScript,程序设计,4.2,创建对象,构造函数模式创建对象,function Person(name,age,job),this.name=name;,this.age=age;,this.job=job;,this.sayName=function(),alert(this.name);,/,通过,new,操作符创建,Person,的实例,var person1=new Person(Nicholas,22,software Engineer);,var person2=new Person(Greg,24,student);,person1.sayName();,pe
41、rson2.sayName();,第,4,章,JavaScript,对象,JavaScript,程序设计,4.2,创建对象,原型模式创建对象,function Person(),Person.prototype.name=Nicholas;,Person.prototype.age=22;,Person.prototype.job=software Engineer;,Person.prototype.sayName(),alert(this.name);,;,var person1=new Person();,person1.sayName();/Nicholas,alert(person1
42、sayName=person2.sayName);/true,第,4,章,JavaScript,对象,JavaScript,程序设计,4.2,创建对象,组合使用构造函数模式和原型模式创建对象,第,4,章,JavaScript,对象,JavaScript,程序设计,4.2,创建对象,动态原型模式创建对象,function Person(name,age),this.name=name;,this.age=age;,this.job=job;,/,方法,if(typeof this.sayName!=function),Person.prototype.sayName=function(),al
43、ert(this.name);,;,var friend=new Person(Nicholas,22,Software Engineer);/,初次调用构造函数,此时修改了原型,var person2=new Person(amy,21);/,此时,sayName(),方法已经存在,不会再修改原型,第,4,章,JavaScript,对象,JavaScript,程序设计,4.2,创建对象,任务,1.,任务介绍,定义一个,Person,对象,对象包括属性姓名,并获取实例化对象,Person,的姓名信息。,2.,任务目标,学会,JavaScript,几种创建对象模式及全局变量的存储机制。,3.,实
44、现思路,1,)选用构造函数模式创建对象,并且将属性为方法的属性定义到函数之外。,2,)全局变量是绑定在,window,对象上的,是,window,对象的属性。,第,4,章,JavaScript,对象,JavaScript,程序设计,4.3,对象特性,对象的四种特性,抽象性 封装性 继承性 多态性,第,4,章,JavaScript,对象,JavaScript,程序设计,4.3,对象特性,任务,1.,任务介绍,定义一个,Student,类作为,Person,类的子类,在,Student,类中继承父类的,walk(),方法、重新定义父类的,sayHello(),方法并添加,Student,类自己的,
45、sayGoodBye(),方法。,2.,任务目标,理解,JavaScript,面向对象的四大特性并掌握创建对象的方法。,3.,实现思路,1,)选用构造函数模式创建对象,并且将属性为方法的属性定义到函数之外。,2,)全局变量是绑定在,window,对象上的,是,window,对象的属性。,第,4,章,JavaScript,对象,JavaScript,程序设计,4.4,单体内置对象,Global,对象,Global,对象是,JavaScript,中最特别的对象,因为实际上它根本不存在。,Global,对象在某种意义上是作为一个终极的兜底儿对象来定义的。换句话说,不属于任何其他对象的属性和方法,最终
46、都是它的属性和方法。所有在全局作用域中定义的属性和函数,都是,Global,对象的属性。,第,4,章,JavaScript,对象,JavaScript,程序设计,4.4,单体内置对象,Global,对象常用内置方法,(,1,),URI,编码方法,(,2,),eval(),方法,第,4,章,JavaScript,对象,JavaScript,程序设计,4.4,单体内置对象,Global,对象的属性,第,4,章,JavaScript,对象,JavaScript,程序设计,属性,释义,undefined,特殊值,undefined,NaN,特殊值,NaN,Infinity,特殊值,Infinity,O
47、bject,构造函数,Object,Array,构造函数,Array,Function,构造函数,Function,Boolean,构造函数,Boolean,String,构造函数,String,Number,构造函数,Number,Date,构造函数,Date,RegExp,构造函数,RegExp,Error,构造函数,Error,EvalError,构造函数,EvalError,RangeError,构造函数,RangeError,ReferenceError,构造函数,ReferenceError,SyntaxError,构造函数,SyntaxError,TypeError,构造函数,T
48、ypeError,URIError,构造函数,URIError,4.4,单体内置对象,Math,对象属性,第,4,章,JavaScript,对象,JavaScript,程序设计,属性,释义,Math.E,自然对数的底数,即常量,e,的值,Math.LN10,10,的自然对数,Math.LN2,2,的自然对数,Math.LOG2E,以,2,为底,e,的对数,Math.LOG10E,以,10,为底,e,的对数,Math.PI,的值,Math.SQRT1_2,1/2,的平方根(即,2,的平方根的倒数),Math.SQRT2,2,的平方根,4.4,单体内置对象,Math,对象方法,(,1,),min(
49、),和,max(),方法;,(,2,)舍入方法:,Math.ceil(),、,Math.floor(),和,Math.round(),;,(,3,),random(),方法;,(,4,)其他方法;,第,4,章,JavaScript,对象,JavaScript,程序设计,属性,释义,Math.abs(num),返回,num,的绝对值,Math.asin(x),返回,x,的反正弦值,Math.exp(num),返回,Math.E,的,num,次幂,Math.atan(x),返回,x,的反正切值,Math.log(num),返回,num,的自然对数,Math.atan2(y,x),返回,y/x,的反
50、正切值,Math.pow(num,power),返回,num,的,power,次幂,Math.cos(x),返回,x,的余弦值,Math.sqrt(num),返回,num,的平方根,Math.sin(x),返回,x,的正弦值,Math.acos(x),返回,x,的反余弦值,Math.tan(x),返回,x,的正切值,4.5,实战:产生,n,个不重复随机数,实战,(,1,)案例描述,用,JavaScript,产生,n,个,min,max,区间内的不重复随机数。,(,2,)实现思路,1,)运用,Math,对象的,random(),方法生成一个,min,max,区间内的随机数;,2,)生成,n,个,
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818