版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaScript 脚本编程脚本编程 内容提要内容提要p JavaScript概述概述p 词法规则词法规则p 基本数据类型基本数据类型p 运算符和表达式运算符和表达式p 核心语句核心语句p 函数函数p 复合数据类型复合数据类型p 对象模型对象模型p 事件处理事件处理JavaScript概述概述JavaScript是由是由Netscape和和Sun公司公司联合开发的基于对象和事件驱动的客联合开发的基于对象和事件驱动的客户端脚本编程语言,通过它与户端脚本编程语言,通过它与HTML、XML、DOM、CSS、JavaApplet等技等技术的有机结合,可以开发出具有很强术的有机结合,可以开发出具有很强
2、交互性的动态页面。交互性的动态页面。第一个第一个JavaScript程序程序实时显示时间实时显示时间!- setInterval(showTime( ),1000); function showTime( ) var d,s; d=new Date( ); s=d.getHours( )+:+d.getMinutes( )+:+d.getSeconds( ); timetxt.innerHTML=当前时间:当前时间:+ s+; /-n基于对象基于对象n事件驱动事件驱动n解释性语言解释性语言n简单性简单性n实时性实时性n跨平台性跨平台性n安全性安全性JavaScript的特点的特点nJavaSc
3、ript脚本的引入方法脚本的引入方法通过通过与与标签对引入。将标签对引入。将JavaScript脚本代码放在脚本代码放在与与之间,浏览器自动识别该标签对并逐行解释之间,浏览器自动识别该标签对并逐行解释其间的代码。其间的代码。通过通过标签的标签的src属性引入。将包含在属性引入。将包含在与与标签对之间的代码放入扩标签对之间的代码放入扩展名为展名为.js的脚本文件中,然后在的脚本文件中,然后在HTML文档文档中通过中通过标签的标签的src属性来引用该脚本属性来引用该脚本文件。文件。在网页中嵌入在网页中嵌入JavaScript脚本脚本nJavaScript脚本的引入方法脚本的引入方法通过通过Java
4、Script伪协议引入。伪协议是非标准化通伪协议引入。伪协议是非标准化通信机制的统称,信机制的统称,JavaScript伪协议的一般格式为:伪协议的一般格式为:javascript: URL。其中。其中“javascript:”是伪协议说是伪协议说明符,明符,URL的主体可以是任意的的主体可以是任意的JavaScript代码,代码,多个语句之间使用分号进行分隔。多个语句之间使用分号进行分隔。 例如:例如: 在网页中嵌入在网页中嵌入JavaScript脚本脚本n JavaScript脚本的引入方法脚本的引入方法通过通过HTML的事件属性引入。的事件属性引入。HTML元素的事件属性用于元素的事件属
5、性用于指示如何处理特定的事件,方法是将脚本指定为事件属性指示如何处理特定的事件,方法是将脚本指定为事件属性的值,以响应系统或用户的动作。事件属性名称由事件名的值,以响应系统或用户的动作。事件属性名称由事件名称加一个称加一个“on”前缀构成,如前缀构成,如onClick,onMouseOver等。等。 例如:例如: 在网页中嵌入在网页中嵌入JavaScript脚本脚本n 嵌入嵌入JavaScript脚本的位置脚本的位置 JavaScript脚本可放在脚本可放在HTML文档中任何需要的位置。文档中任何需要的位置。一般来说,可以在一般来说,可以在与与标签对、标签对、与与标签对之间放置标签对之间放置J
6、avaScript脚本代码。放脚本代码。放置在置在与与标签对之间的标签对之间的JavaScript脚本脚本一般用于提前载入,以响应用户的页面动作,且一般一般用于提前载入,以响应用户的页面动作,且一般不影响不影响HTML文档的浏览器显示格局。如果需要在页文档的浏览器显示格局。如果需要在页面载入时动态生成页面内容,应将面载入时动态生成页面内容,应将JavaScript脚本放脚本放置在置在与与标签对之间。标签对之间。在网页中嵌入在网页中嵌入JavaScript脚本脚本n标识符标识符 在在JavaScript中,标识符用来命名变量和函数。中,标识符用来命名变量和函数。标识符的第一个字符必须是字母、下划
7、线或美元标识符的第一个字符必须是字母、下划线或美元符号,后续字符可以是字母、数字、下划线或美符号,后续字符可以是字母、数字、下划线或美元符号。例如:元符号。例如:x、user_name、U571、_pswd、$money都是合法的标识符。都是合法的标识符。不能使用不能使用JavaScript中的关键字作为标识符。在中的关键字作为标识符。在JavaScript中定义了中定义了20多个关键字,这些关键字多个关键字,这些关键字是是JavaScript内部使用的,如内部使用的,如var、for、function、if等,它们都不能作为标识符使用。等,它们都不能作为标识符使用。词法规则词法规则词法规则词
8、法规则n 关键字和保留字关键字和保留字 关键字是关键字是JavaScript语法自身的一部分,具有特殊语法自身的一部分,具有特殊的意义,不能用作标识符。的意义,不能用作标识符。 保留字是为将来的关键字而保留的单词,由于未保留字是为将来的关键字而保留的单词,由于未来浏览器可能会实现这些保留字,因此它们最好也来浏览器可能会实现这些保留字,因此它们最好也不要作为标识符使用。不要作为标识符使用。breakcasecatchcontinuedefaultdeletedoelsefinallyforfunctionifininstanceofnewreturnswitchthisthrowtrytypeo
9、fvarvoidwhilewithJavaScript的保留字的保留字词法规则词法规则n大小写敏感大小写敏感JavaScript是一种区分大小写的脚本语言。在输入是一种区分大小写的脚本语言。在输入关键字、变量名、函数名以及其它所有标识符时,关键字、变量名、函数名以及其它所有标识符时,都必须采取一致的字符大小写形式。例如,都必须采取一致的字符大小写形式。例如, “username”、“userName”、“UserName”代表代表三个不同的变量名。三个不同的变量名。许多许多JavaScript对象的属性和它们所代表的对象的属性和它们所代表的HTML标签的属性同名,在标签的属性同名,在HTML中
10、这些标签的属性可以中这些标签的属性可以以任意大小写的方式输入,但是在以任意大小写的方式输入,但是在JavaScript中它中它们通常都有固定的大小写格式。例如,们通常都有固定的大小写格式。例如,body标签的标签的背景颜色属性可以声明为背景颜色属性可以声明为“bgcolor”、“bgColor”或者或者“BGCOLOR”,但代表,但代表body标签的标签的document对象的背景颜色属性只能声明为对象的背景颜色属性只能声明为“bgColor”。词法规则词法规则n空白字符空白字符空白字符包括空格、制表符和换行符等,在空白字符包括空格、制表符和换行符等,在编写脚本时占据一定的空间,以增强代码的可
11、编写脚本时占据一定的空间,以增强代码的可读性,方便开发人员查看和维护。读性,方便开发人员查看和维护。空格是使用最为频繁的空白字符,常被用作空格是使用最为频繁的空白字符,常被用作分隔符。分隔符。例例1:sum = 3 + 10 ; sum=3+10;空格被忽略空格被忽略例例2:var x=typeof JavaScript;空格作为分隔空格作为分隔符符词法规则词法规则n语句结束符语句结束符JavaScript使用分号作为语句结束符,多个语句使用分号作为语句结束符,多个语句可写在不同行或同一行。可写在不同行或同一行。 例如:例如: var str=Welcome to JavaScript Wor
12、ld!; document.write(str); 也可写成:也可写成:var str=Welcome to JavaScript World!; document.write(str);语句分行后,作为语句结束符的分号可以省略。语句分行后,作为语句结束符的分号可以省略。 例如:例如: var str=Welcome to JavaScript World! document.write(str)注意:省略分号不是一个好的编程习惯,它注意:省略分号不是一个好的编程习惯,它可能导致程序产生一种不明确的状态。可能导致程序产生一种不明确的状态。词法规则词法规则n注释注释 JavaScript有单行注
13、释和多行注释两种形式。有单行注释和多行注释两种形式。单行注释以单行注释以“/”开头,处于开头,处于“/”和一行结尾之和一行结尾之间的任何文本都被当作注释而被浏览器忽略掉。间的任何文本都被当作注释而被浏览器忽略掉。多行注释以多行注释以“/*”开头,以开头,以“*/”结尾,处于结尾,处于“/*”和和“*/”之间的文本被当作注释,这些文本可以之间的文本被当作注释,这些文本可以跨越多行,但是其中不能有嵌套的注释。跨越多行,但是其中不能有嵌套的注释。 例如:例如: /这是单行注释这是单行注释 /* *这是多行注释这是多行注释 *它是多行的它是多行的 *它是多行的它是多行的 */基本数据类型基本数据类型基
14、本数据类型定义了一组不可再分的值的集合,以基本数据类型定义了一组不可再分的值的集合,以及作用于该集合上的操作集。及作用于该集合上的操作集。JavaScript支持的基本支持的基本数据类型包括数值型、字符串型和布尔型,分别对数据类型包括数值型、字符串型和布尔型,分别对应于不同的存储空间。应于不同的存储空间。n基本数据类型和常量基本数据类型和常量 当某种基本类型的数据项直接出现在程序中时,称之为常当某种基本类型的数据项直接出现在程序中时,称之为常 量,即值不能被改变的量。量,即值不能被改变的量。数值型:最基本的数据类型,包括整型和浮点型数值型:最基本的数据类型,包括整型和浮点型整型常量:可以使用十
15、进制、八进制或十六进制表示,整型常量:可以使用十进制、八进制或十六进制表示,如如1234、0745、0 x93C等。等。浮点型常量:可以使用小数或指数方法表示,如浮点型常量:可以使用小数或指数方法表示,如12.34、5.9e7、4.3e-5等。等。特殊的数值型常量:特殊的数值型常量:Infinity表示正无穷大,表示正无穷大, -Infinity表示负无穷大,表示负无穷大,NaN表示表示“不是一个数值不是一个数值”、“没有没有意义的运算意义的运算”或或“无法转换成数值类型无法转换成数值类型”。如。如5/0的的运算结果为运算结果为Infinity,-5/0的运算结果为的运算结果为-Infinit
16、y,0/0的运算结果为的运算结果为NaN。基本数据类型基本数据类型n基本数据类型和常量基本数据类型和常量字符串型:表示文本字符串型:表示文本的数据类型的数据类型字符串常量:用字符串常量:用 或或 括起来的若干括起来的若干个字符,如个字符,如JavaScript、This is a book of C+等。等。转义字符:以反斜转义字符:以反斜杠杠 开头的具有特开头的具有特殊功能的字符。殊功能的字符。转义字符转义字符功能说明功能说明b退格退格f换页换页n换行换行r回车回车t制表制表单引号单引号双引号双引号反斜线反斜线XXXASCII字符,每一个大字符,每一个大X是一是一个八进制数值,整个八进制个八
17、进制数值,整个八进制数的范围是数的范围是0377。例如:。例如:101表示表示AxXXASCII字符,每一个大字符,每一个大X是一是一个十六进制数值,整个十六个十六进制数值,整个十六进制数的范围是进制数的范围是00FF。例。例如:如:x65表示表示euXXXXUnicode字符,每一个大字符,每一个大X是是一个十六进制数值。例如:一个十六进制数值。例如:u000A表示换行,和表示换行,和n结结果一样果一样基本数据类型基本数据类型n基本数据类型和常量基本数据类型和常量布尔型:表示状态的数据类型布尔型:表示状态的数据类型布尔常量:只有两个可能的值布尔常量:只有两个可能的值true和和false,表
18、示表示“真真”和和“假假”两种状态两种状态。如。如53的运算的运算结果为结果为true,“Chinese”“China”的运算结果的运算结果是是false。n变量变量 变量是存放常量的容器,主要作用是存取数据。变量是存放常量的容器,主要作用是存取数据。变量的声明:在变量的声明:在JavaScript中,可以先通过关键中,可以先通过关键字字var来声明变量,然后再使用。来声明变量,然后再使用。 例如:例如:var num; var str, flag; num = 100; str = JavaScript Language; flag = true; 变量的初始化:变量可以在声明的同时指定初始
19、值。变量的初始化:变量可以在声明的同时指定初始值。 例如:例如:var num = 100; var str = JavaScript Language, flag = true; 仅用仅用var声明但未初始化的变量获得默认初值声明但未初始化的变量获得默认初值undefined。 变量的类型变量的类型实际类型视变量内容而定。例如,上例中的实际类型视变量内容而定。例如,上例中的num为数值型为数值型变量,变量,str为字符串型变量,为字符串型变量,flag为布尔型变量。为布尔型变量。变量的类型可以根据变量内容的改变而自动更改。变量的类型可以根据变量内容的改变而自动更改。 例如:例如:var nu
20、m = 1; /num为数值型变量为数值型变量 num = Hello World!; /num为字符串型变量为字符串型变量变量可以不经过变量可以不经过var声明就直接使用,而在变量赋值时自动声声明就直接使用,而在变量赋值时自动声明该变量。明该变量。 例如:例如:num = 100; str = JavaScript Language; flag = true; 好的编程风格:所有变量在第一次使用前都用好的编程风格:所有变量在第一次使用前都用var进行声明!进行声明!基本数据类型基本数据类型运算符和表达式运算符和表达式运算符是完成操作的一系列符号,运算符是完成操作的一系列符号,JavaScri
21、pt支持的运算符包括支持的运算符包括算术运算符、比较运算符、逻辑运算符等。算术运算符、比较运算符、逻辑运算符等。表达式是由变量、常量和运算符连接起来的式子,根据运算符表达式是由变量、常量和运算符连接起来的式子,根据运算符类型的不同,表达式可分为算术表达式、比较表达式、逻辑表类型的不同,表达式可分为算术表达式、比较表达式、逻辑表达式等。达式等。n算术运算符和算术表达式算术运算符和算术表达式算术运算符算术运算符 算术表达式算术表达式运算结果运算结果简要说明简要说明+6+1521将两个数据相加将两个数据相加-9-72将两个数据相减将两个数据相减*4*832将两个数据相乘将两个数据相乘/17/53.4
22、将两个数据相除将两个数据相除%13%61取两个数据相除的余数取两个数据相除的余数+x+变量变量x的原值加的原值加1将变量值加将变量值加1-y变量变量y的原值减的原值减1将变量值减将变量值减1运算符和表达式运算符和表达式n比较运算符和比较表达式比较运算符和比较表达式当操作数当操作数类型不同时类型不同时进行类型转进行类型转换换当操作数当操作数类型不同时类型不同时不进行类型不进行类型转换转换比较运算符比较运算符比较表达式比较表达式运算结果运算结果简要说明简要说明-6ChinaChinesefalse大于大于=true=12=12true大于或等于大于或等于=false=0true等于等于!=x!=x
23、false不等于不等于=true=1false恒等于恒等于!=2008!=2008true恒不等于恒不等于运算符和表达式运算符和表达式n逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式逻辑运算符逻辑运算符逻辑表达式逻辑表达式运算结果运算结果简要说明简要说明!falsetrue逻辑非,操作数为逻辑非,操作数为假则结果为真,否假则结果为真,否则结果为假则结果为假&75&8=6false逻辑与,操作数全逻辑与,操作数全为真则结果为真,为真则结果为真,否则结果为假否则结果为假| |2=2| |true=1true逻辑或,操作数全逻辑或,操作数全为假则结果为假,为假则结果为假,否则结果为真否则结果为真运算符
24、和表达式运算符和表达式n位运算符和位表达式位运算符和位表达式位运算符位运算符 位表达式位表达式运算结果运算结果简要说明简要说明&5&64按位与,若两操作数对应二进制位都是按位与,若两操作数对应二进制位都是1,则结果位为则结果位为1,否则为,否则为0|9|311按位或,若两操作数对应二进制位都是按位或,若两操作数对应二进制位都是0,则结果位为则结果位为0,否则为,否则为1743按位异或,若两操作数对应二进制位相反,按位异或,若两操作数对应二进制位相反,则结果位为则结果位为1,否则为,否则为00-1按位非,若操作数对应二进制位为按位非,若操作数对应二进制位为0,则结,则结果位为果位为1,否则为,否
25、则为016-323-4算术右移,左侧操作数的二进制位向右移动算术右移,左侧操作数的二进制位向右移动由右侧数值表示的位数,左边空位补符号由右侧数值表示的位数,左边空位补符号-323536870908逻辑右移,左侧操作数的二进制位向右移动逻辑右移,左侧操作数的二进制位向右移动由右侧数值表示的位数,左边空位补由右侧数值表示的位数,左边空位补0运算符和表达式运算符和表达式n赋值运算符和赋值表达式赋值运算符和赋值表达式赋值运算符赋值运算符 赋值表达式赋值表达式等价形式等价形式简要说明简要说明=x=y+zx=(y+z)赋值赋值+=x+=y+zx=x+(y+z)相加后赋值相加后赋值-=x-=y+zx=x-(
26、y+z)相减后赋值相减后赋值*=x*=y+zx=x*(y+z)相乘后赋值相乘后赋值/=x/=y+zx=x/(y+z)相除后赋值相除后赋值%=x%=y+zx=x%(y+z)取余后赋值取余后赋值&=x&=y+zx=x&(y+z)按位与后赋值按位与后赋值|=x|=y+zx=x|(y+z)按位或后赋值按位或后赋值=x=y+zx=x (y+z)按位异或后赋值按位异或后赋值=x=y+zx=x=x=y+zx=x(y+z)算术右移后赋值算术右移后赋值=x=y+zx=x(y+z) 逻辑右移后赋值逻辑右移后赋值n条件运算符和条件表达式条件运算符和条件表达式 条件运算符有条件运算符有3个操作数,一般格式如下:个操作
27、数,一般格式如下:条件式条件式 ? valueB : valueC 当条件式成立时,当条件式成立时,valueB会被赋给整个条件表会被赋给整个条件表达式,否则将达式,否则将valueC赋给条件表达式。赋给条件表达式。 例如:例如: var min = 67 ? 6 : 7;思考:假设思考:假设x、y、z三个变量均已赋值,请写出三个变量均已赋值,请写出求三个变量中最大值和最小值的条件表达式。求三个变量中最大值和最小值的条件表达式。运算符和表达式运算符和表达式n字符串运算符和字符串表达式字符串运算符和字符串表达式字符串运算符字符串运算符说明说明例子例子+连接两个字符串连接两个字符串var strA
28、 = Java; var strB = Script; str = strA + strB;str的值是的值是JavaScript+=连接两个字符串,然后赋值连接两个字符串,然后赋值var strA = Hello ; var strB = World; strA += strB;strA的值是的值是Hello World运算符和表达式运算符和表达式n逗号运算符和逗号表达式逗号运算符和逗号表达式 逗号既可以作为分隔符,也可以作为运算符。逗号既可以作为分隔符,也可以作为运算符。逗号表达式的一般格式如下:逗号表达式的一般格式如下:表达式表达式1, 表达式表达式2, , 表达式表达式n 逗号表达式的
29、求值过程:先求表达式逗号表达式的求值过程:先求表达式1的值,再的值,再求表达式求表达式2的值,依次下去,最后求表达式的值,依次下去,最后求表达式n的的值,表达式值,表达式n的值即为整个逗号表达式的值。的值即为整个逗号表达式的值。 例如:例如: var a=2, b=4, c=6, x, y; /逗号作为分隔符逗号作为分隔符 y=(x=a+b, x+c); /逗号作为运算符逗号作为运算符运算符和表达式运算符和表达式n基本控制结构基本控制结构 基本控制结构用来决定程序的处理流程,基本控制结构用来决定程序的处理流程,JavaScript 支持三种结构:顺序、选择和循环。支持三种结构:顺序、选择和循环
30、。核心语句核心语句开始开始语句语句1语句语句2结束结束顺序结构顺序结构分支结构分支结构单分支选择和双分支选择结构单分支选择和双分支选择结构语句语句1语句语句2结束结束开始开始逻辑条件逻辑条件truefalse开始开始逻辑条件逻辑条件truefalse语句语句1结束结束多分支结构多分支结构false条件条件1语句语句1truefalse开始开始语句语句2true条件条件2false条件条件3语句语句3true条件条件nfalse语句语句ntrue语句语句n+1结束结束多分支选择结构多分支选择结构循环结构循环结构循环结构循环结构当型循环当型循环开始开始逻辑条逻辑条件件truefalse循环体循环体
31、结束结束直到型循环直到型循环开始开始逻辑条逻辑条件件truefalse循环体循环体结束结束n表达式和复合语句表达式和复合语句由各种类型的表达式加上分号组成的语句被称为表达式由各种类型的表达式加上分号组成的语句被称为表达式语句。语句。 例如:例如: sum+; /算术表达式语句算术表达式语句 str=Olympic + 2008; /赋值表达式语句赋值表达式语句用大括号用大括号“ ”括起来的语句序列称为复合语句,用来在括起来的语句序列称为复合语句,用来在需要使用单行语句的地方完成多项任务。需要使用单行语句的地方完成多项任务。 例如:例如: var angle=Math.PI; var cosin
32、e=Math.cos(angle); alert(cos(+angle+)=+cosine); 核心语句核心语句n条件语句条件语句 选择结构的核心语句是条件语句,通过判断某个逻选择结构的核心语句是条件语句,通过判断某个逻 辑条件是否成立,从给定的各种可能操作中选择一辑条件是否成立,从给定的各种可能操作中选择一 种执行。条件语句包括种执行。条件语句包括if语句和语句和switch语句。语句。 if语句的三种形式语句的三种形式单分支选择。其一般格式如下:单分支选择。其一般格式如下: if (表达式表达式) 语句语句;功能:计算表达式的值,若计算结果为功能:计算表达式的值,若计算结果为true,执行
33、语句;否则跳过,执行语句;否则跳过if语句执行其后的语句。语句执行其后的语句。例例1:if(count 10) count = 0; 例例2:if(count 10) count = 0; alert(count被重设为被重设为0!); 核心语句核心语句双分支选择。其一般格式如下:双分支选择。其一般格式如下: if (表达式表达式) 语句语句1; else 语句语句2;功能:如果表达式的计算结果为功能:如果表达式的计算结果为true,执行语句,执行语句1;否则执行语句否则执行语句2。例如:例如: var num=Math.round(Math.random( )*100); if(num%2=
34、0) alert(num+是一个偶数是一个偶数); else alert(num+是一个奇数是一个奇数);核心语句核心语句多分支选择。其一般格式如下:多分支选择。其一般格式如下: if (表达式表达式1) 语句语句1; else if (表达式表达式2) 语句语句2; else if (表达式表达式n) 语句语句n; else 语句语句n+1;功能:如果表达式功能:如果表达式1的值为的值为true,执行语句,执行语句1;否则计算表;否则计算表达式达式2的值,如果返回的值,如果返回true则执行语句则执行语句2;如果所有表达式;如果所有表达式都不成立,则执行都不成立,则执行else后面的语句后面
35、的语句n+1。例如:例如:var age=parseInt(prompt(请输入您的年龄请输入您的年龄,); if (age10) alert(黄口小儿黄口小儿); else if (age20) alert(年方弱冠年方弱冠); else if (age30) alert(三十而立三十而立); else if (age=b) if (a=c) max=a; else max=c; else if (b=c) max=b; else max=c; alert(max=+max);核心语句核心语句switch语句语句 switch语句用来实现多分支选择结构,其一般形式如下:语句用来实现多分支选择
36、结构,其一般形式如下: switch (表达式表达式) case 常量表达式常量表达式1: 语句语句1; break; case 常量表达式常量表达式2: 语句语句2; break; case 常量表达式常量表达式n: 语句语句n; break; default: 语句语句n+1; 功能:比较表达式的值是否与某一个功能:比较表达式的值是否与某一个case后面的常量表达后面的常量表达式的值相等,如果相等,则执行相应的语句;如果所有式的值相等,如果相等,则执行相应的语句;如果所有case后面常量表达式的值都不与表达式的值相等,则执行后面常量表达式的值都不与表达式的值相等,则执行default后面的
37、语句。后面的语句。default子句可以省略,即所有常量表子句可以省略,即所有常量表达式的值都不满足条件时直接跳过达式的值都不满足条件时直接跳过switch语句执行其后的语句执行其后的语句。语句。核心语句核心语句例如:例如: var age=parseInt(prompt(请输入您的年龄请输入您的年龄,); age=Math.floor(age/10); switch(age) case 0: alert(黄口小儿黄口小儿); break; case 1: alert(年方弱冠年方弱冠); break; case 2: alert(三十而立三十而立); break; case 3: alert
38、(四十不惑四十不惑); break; default: alert(英雄迟暮英雄迟暮); break语句用来直接跳出整个语句用来直接跳出整个switch语句。如果省略语句。如果省略break语句,在执行完某个语句,在执行完某个case子句后会继续执行下子句后会继续执行下一个一个case子句,直到遇上子句,直到遇上break语句或者所有的子句语句或者所有的子句都被执行完为止。都被执行完为止。核心语句核心语句n循环语句循环语句 循环语句允许在逻辑条件成立时反复执行相同循环语句允许在逻辑条件成立时反复执行相同 的语句的语句(循环体循环体)。while语句语句一般格式:一般格式:while (表达式表
39、达式) 语句语句;功能:计算表达式的值,如果计算结果为功能:计算表达式的值,如果计算结果为true,反复执行语,反复执行语句;否则结束循环。语句可以是单行语句或者复合语句。句;否则结束循环。语句可以是单行语句或者复合语句。例如:用例如:用while语句编写求语句编写求1+3+5+99累加和的程序:累加和的程序: var sum=0, i=1; while(i=100) sum+=i; i+=2; 核心语句核心语句do-while语句语句一般格式:一般格式:do 语句语句; while (表达式表达式);功能:反复执行语句,直到表达式的计算结果为功能:反复执行语句,直到表达式的计算结果为fals
40、e时结束时结束循环。循环。例如:用例如:用do-while语句编写求语句编写求1+3+5+99累加和的程序:累加和的程序: var sum=0, i=1; do sum+=i; i+=2; while(i=100);核心语句核心语句for语句语句一般格式:一般格式:for (表达式一表达式一; 表达式二表达式二; 表达式三表达式三) 语句语句;功能:功能: (1) 计算表达式一的值;计算表达式一的值; (2) 计算表达式二的值,如果计算结果为计算表达式二的值,如果计算结果为true,进入,进入(3),否,否 则进入则进入(6); (3) 执行语句;执行语句; (4) 计算表达式三的值;计算表达
41、式三的值; (5) 回到回到(2)继续执行;继续执行; (6) 结束循环,执行结束循环,执行for语句的后续语句。语句的后续语句。例如:用例如:用for语句编写求语句编写求1+3+5+99累加和的程序:累加和的程序: var sum=0, i; for(i=1; i=100; i+=2) sum+=i;核心语句核心语句循环语句的嵌套循环语句的嵌套 循环语句中又包含一个或多个循环语句称为循环语句的嵌套。循环语句中又包含一个或多个循环语句称为循环语句的嵌套。 例如:例如: var i,j; for(i=1;i=4;i+) document.write(); for(j=1;j=2*i-1;j+)
42、document.write(* ); document.write(); for(i=1;i=3;i+) document.write(); for(j=1;j=7-2*i;j+) document.write(* ); document.write(); 核心语句核心语句break和和continue语句语句 break语句只能用在循环语句和语句只能用在循环语句和switch语句中,作用是停止执语句中,作用是停止执 行尚未执行的部分,直接从循环语句或行尚未执行的部分,直接从循环语句或switch语句中跳出来。语句中跳出来。
43、 continue语句只能用在循环语句中,作用是跳过循环体内剩语句只能用在循环语句中,作用是跳过循环体内剩 余的语句而提前进入下一次循环。余的语句而提前进入下一次循环。 例如:例如:var sum=0, i=0; while(true) i+; if(i100) break; if(i%2=0) continue; sum+=i; 核心语句核心语句n标签语句标签语句在在JavaScript中,语句可以在其前面加上标签,一般格式为:中,语句可以在其前面加上标签,一般格式为: 标识符标识符: 语句语句;标签必须是合法的标签必须是合法的JavaScript标识符,不能是关键字或保留字。标识符,不能是
44、关键字或保留字。标签可以与程序中的变量或函数同名。标签可以与程序中的变量或函数同名。通过给语句加标签,达到在程序其他位置引用该语句的目的。通过给语句加标签,达到在程序其他位置引用该语句的目的。 例如:例如:outer: for(i=0; i10; i+) for(j=0; ji) document.write(); continue outer; k=i*j; document.write(k+ ); if(k=9) break outer; 核心语句核心语句在在JavaScript中,函数用来封装那些在程序中反复使用的程序段,中,函数用来封装那些在程序中反复
45、使用的程序段,常作为事件处理程序被调用。常作为事件处理程序被调用。n函数的基本组成函数的基本组成 函数定义函数定义 一般格式:一般格式:function 函数名函数名(参数列表参数列表) 函数体函数体; return 返回值返回值; 说明:说明: function:定义函数的关键字。:定义函数的关键字。 函数名:函数的标识符,表示函数的入口地址。函数名:函数的标识符,表示函数的入口地址。 参数列表:包含若干个参数,不同参数间用逗号间隔。当调用函数参数列表:包含若干个参数,不同参数间用逗号间隔。当调用函数时,可以向参数列表中传入常量值、变量值或其它表达式的值,函时,可以向参数列表中传入常量值、变
46、量值或其它表达式的值,函数内的程序语句可以通过参数名称来引用传进来的这些值。参数列数内的程序语句可以通过参数名称来引用传进来的这些值。参数列表也可以为空。表也可以为空。 函数体:实现函数功能的程序语句。函数体:实现函数功能的程序语句。 return:指定函数返回值的关键字。:指定函数返回值的关键字。return语句负责将函数的执行语句负责将函数的执行结果返回到程序中函数调用的位置,一个函数中最多只能有一条结果返回到程序中函数调用的位置,一个函数中最多只能有一条return语句。语句。函数函数例例 定义一个求阶乘的函数定义一个求阶乘的函数 function fact (n) var s = 1,
47、 i; for( i=1; i=n; i+ ) s=s*i; return s; 定义函定义函数的关键数的关键字字函数名函数名参数列表参数列表函数体函数体函数函数返回函数的执行结果返回函数的执行结果函数调用函数调用 一般格式:一般格式:函数名函数名(实参列表实参列表); 说明:说明:实参列表中包含若干个实际参数,参数之间用逗号间隔,实参列表中包含若干个实际参数,参数之间用逗号间隔,实参个数应与函数定义时参数列表中的参数个数相等。实参个数应与函数定义时参数列表中的参数个数相等。实参的表示形式可以是常量、变量或者表达式,所有实实参的表示形式可以是常量、变量或者表达式,所有实参都必须得到具体的赋值。
48、参都必须得到具体的赋值。函数调用时的参数传递都是以值传递的方式进行的。也函数调用时的参数传递都是以值传递的方式进行的。也就是说,在函数中将某个传进来的变量值改变了,并不就是说,在函数中将某个传进来的变量值改变了,并不会影响原来函数外的变量值。会影响原来函数外的变量值。 例如:例如:function inc(n) n+; alert(n); var x = 5; inc(x); alert(x);函数函数函数函数调调用用参数传参数传递递函数定函数定义义程序运行结果:程序运行结果: n=6 x=5n函数的作用域函数的作用域 在函数外部声明的变量称为全局变量,全局变量在程序的在函数外部声明的变量称为
49、全局变量,全局变量在程序的 任何地方都可以使用。在函数内部声明的变量称为局部变任何地方都可以使用。在函数内部声明的变量称为局部变 量,局部变量应用关键字量,局部变量应用关键字var声明,没有用声明,没有用var声明的局部声明的局部 变量在函数执行完毕后会变成全局变量。变量在函数执行完毕后会变成全局变量。 程序运行结果:程序运行结果: sum = 8程序运行结果:程序运行结果: y 未定义未定义function inc(n) y = +n; return y;var x = 3;var sum = inc(x) + y;alert(sum);function inc(n) var y = +n;
50、 return y;var x = 3;var sum = inc(x) + y;alert(sum);函数函数n函数的嵌套与递归函数的嵌套与递归函数的嵌套:嵌套定义是指在定义一个函数的过程中定函数的嵌套:嵌套定义是指在定义一个函数的过程中定义另一个函数,定义在某个函数内部的函数称为局部函义另一个函数,定义在某个函数内部的函数称为局部函数,其作用域局限在所属的框架函数。嵌套调用是指在数,其作用域局限在所属的框架函数。嵌套调用是指在调用一个函数的过程中又调用另一个函数。调用一个函数的过程中又调用另一个函数。 例如:例如:function lcm(m, n) /框架函数,求最小公倍数框架函数,求最
51、小公倍数 var res; function gcd(m, n) /局部函数,求最大公约数局部函数,求最大公约数 var a, b, t; if(mn) t=m; m=n; n=t; a=m; b=n; while(r=a%b)!=0) a=b; b=r; return b; res=m*n/gcd(m, n); /嵌套调用嵌套调用gcd函数函数 alert(m+ 和和 +n+ 的最小公倍数是的最小公倍数是 +res); 函数函数函数的递归:递归调用是指函数在调用过程中直函数的递归:递归调用是指函数在调用过程中直接或间接调用自身,是一种特殊的嵌套调用。接或间接调用自身,是一种特殊的嵌套调用。
52、例如:例如:function fac(n) var res; if(n=1) res=1; else res=n*fac(n-1); /递归调用递归调用 return res; var n=parseInt(prompt(请输入整数请输入整数,); var f=fac(n); alert(n+ 的阶乘是的阶乘是 +f);函数函数n对象对象 对象是属性与方法的集合,这些属性和方法被用来对象是属性与方法的集合,这些属性和方法被用来 描述对象的特性与行为。描述对象的特性与行为。创建对象创建对象方式一:方式一:var 对象名对象名 = new Object( ); 用用Object( )建立的对象没有
53、任何属性,可以通建立的对象没有任何属性,可以通过过“对象名对象名.属性名属性名=属性值属性值;”的方式为新建对的方式为新建对象增加属性并指定属性值。象增加属性并指定属性值。 例如:例如:var teacher=new Object( ); =杨鏖丞杨鏖丞; teacher.age=32; teacher.sex=男男;注意:注意:Object( )实际上是内部对象实际上是内部对象Object的构造函数。的构造函数。Object对象是所有对象是所有JavaScript对象的父对象,它所提对象的父对象,它所提供的属性和方法会被其他的对象继承。供的属性和方法会被其他的对象继承
54、。复合数据类型复合数据类型创建对象创建对象方式二:方式二: var 对象名对象名= new 自定义构造函数名自定义构造函数名(实参列表实参列表); 实参列表用来初始化新建对象的属性。新建对实参列表用来初始化新建对象的属性。新建对象的属性声明是在属性名称前加上象的属性声明是在属性名称前加上“this.”,然,然后将参数值指定给它,或是直接设定属性的初后将参数值指定给它,或是直接设定属性的初始值。始值。 例如:例如:function person(n, a, s) =n; this.age=a; this.sex=s; var yac=new person(杨鏖丞杨鏖丞,32,
55、男男); var yyq=new person(余颖秋余颖秋,30, 女女);注意:关键字注意:关键字this是对当前对象的引用。是对当前对象的引用。复合数据类型复合数据类型存取对象属性存取对象属性方式一:方式一:对象名对象名.属性名属性名 例如:例如:function birthday(y, m, d) this.year=y; this.month=m; this.day=d; var p1=new birthday(2000, 7, 25); alert(生于生于+p1.year+年年+ p1.month+月月+p1.day+日日); 可以根据对象的个别需求来增加它自己的属性,可以根据对
56、象的个别需求来增加它自己的属性,个别定义的对象属性不会影响其他对象。个别定义的对象属性不会影响其他对象。 例如:例如: var p2=new birthday(1976, 2, 15); p2.time=3:25; /p1对象不具备对象不具备time属性属性复合数据类型复合数据类型存取对象属性存取对象属性方式二:方式二:对象名对象名属性名属性名|属性索引值属性索引值 例如:例如:var p1=new Object( );p1year=2000;p1month=7;p1day=25;alert(生于生于+p1.year+年年+p1.month+月月+p1.day+日日);var p2=new O
57、bject( );p20=1976;p21=2;p22=15;alert(生于生于+p20+年年+p21+月月+p22+日日);复合数据类型复合数据类型定义和调用对象方法定义和调用对象方法 对象的方法是描述对象动态特征的操作序列,即函数。定对象的方法是描述对象动态特征的操作序列,即函数。定义对象方法和定义对象属性非常类似,只需要将已定义函义对象方法和定义对象属性非常类似,只需要将已定义函数的名称指定给对象方法名,或者直接定义函数。一般格数的名称指定给对象方法名,或者直接定义函数。一般格式为:式为: 对象名对象名.方法名方法名 = 已定义函数名已定义函数名; 或者或者 对象名对象名.方法名方法名
58、 = 函数定义函数定义; 例如:例如: function calAge( ) return (new Date( ).getYear( )-this.year; function birthday(y, m, d) this.year=y; this.month=m; this.day=d; this.getAge=calAge; /定义对象方法定义对象方法 var p=new birthday(2000, 7, 25); alert(年龄:年龄: +p.getAge( );复合数据类型复合数据类型定义和调用对象方法定义和调用对象方法 上述对象方法定义也可写成:上述对象方法定义也可写成: fu
59、nction birthday(y, m, d) this.year=y; this.month=m; this.day=d; this.getAge=function( ) return (new Date( ).getYear( )-this.year; 调用对象方法的一般格式为:调用对象方法的一般格式为: 对象名对象名.方法名方法名(实参列表实参列表) 例如:例如:var p1=new birthday(1997, 7, 1); var p2=new birthday(2008, 8, 1); document.write(年龄年龄1: +p1.getAge( )+ 年龄年龄2: +p2
60、.getAge( );复合数据类型复合数据类型对象操作语句及运算符对象操作语句及运算符for.in语句语句 一般格式:一般格式:for(变量名变量名 in对象名对象名) 循环体循环体; 该语句会将对象包含的所有属性逐个取出来,当取得该语句会将对象包含的所有属性逐个取出来,当取得对象的一个属性后会将该属性的名称指定给变量,并对象的一个属性后会将该属性的名称指定给变量,并继续执行继续执行for循环直到取得对象的最后一个属性。该语循环直到取得对象的最后一个属性。该语句的优点是无需知道对象中属性的名称和个数即可进句的优点是无需知道对象中属性的名称和个数即可进行操作。行操作。 例如:例如:var p=n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年危险化学品生产单位安全生产管理人员试题及答案
- 2026年计算机职高知识题库(含答案)
- 2026年法律法规理论知识应用考试模拟题及答案详解
- 2026年中国索具市场深度调查及行业前景研究报告
- 2026年中国超微型电子计算机行业市场供需预测研究报告
- 2026年税务副职笔试题库(含答案)
- 中小学教师职业道德知识竞赛题库(含答案)
- 卫生管理(副高)高级职称考试题库(含答案)
- 2026年材料员易错点汇模拟题及答案详解
- 2026-2030年中国汽车美容产品行业市场发展趋势与前景展望战略分析报告
- 心内科护理查房:先天性心脏病的护理要点
- 电除颤问答题
- 市政路面白改黑改造工程监理细则
- 第15课 规划与设计教学设计-2025-2026学年小学信息技术(信息科技)五年级第5册滇人版
- DBJ50T-542-2026 建筑机器人应用技术标准
- 1.2 1.2.1 命题与量词 课件-2026版高中数学人教B版必修第一册
- 2025版煤矿安全规程题库645道
- 农行笔试真题全套及答案
- 部编版初一语文七年级上册《咏雪》听评课记录(区公开课)
- 塑胶件培训课件
- 高中数学第九、十章统计与概率章节测试卷-2024-2025学年高一下学期数学人教A版(2019)必修第二册
评论
0/150
提交评论