JavaScript语言基础.ppt

上传人:牧羊曲112 文档编号:5435996 上传时间:2023-07-06 格式:PPT 页数:40 大小:766KB
返回 下载 相关 举报
JavaScript语言基础.ppt_第1页
第1页 / 共40页
JavaScript语言基础.ppt_第2页
第2页 / 共40页
JavaScript语言基础.ppt_第3页
第3页 / 共40页
JavaScript语言基础.ppt_第4页
第4页 / 共40页
JavaScript语言基础.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《JavaScript语言基础.ppt》由会员分享,可在线阅读,更多相关《JavaScript语言基础.ppt(40页珍藏版)》请在三一办公上搜索。

1、第3章 JavaScript语言基础,【学习目标】,对JavaScript的作用有所体会之后,我们来更深入地学习JavaScript语言,这也是学习JavaScript的重点。通过本章的学习,读者可以达到以下学习目的:了解关键字和标识符。掌握JavaScript常用的数据类型。熟悉常量和变量。熟悉运算符和表达式。,【学习导航】,本章主要介绍了关键字,JavaScript常用的数据类型,常量和变量,运算符和表达式。本章在书中的学习位置如图3.1所示。,【知识框架】,本章学习内容知识框架如图3.2所示。,本章目录,3.1 关键字和标识符 3.2 数据类型 3.3 常量 3.4 变量 3.5 运算符

2、 3.6 表达式,3.1 关键字和标识符,关键字 标识符,关键字,JavaScript关键字(Reserved Words)是指在JavaScript语言中有特定含义,成为JavaScript语法中一部分的那些字。JavaScript关键字是不能作为变量名和函数名使用的。使用JavaScript关键字作为变量名或函数名,会使JavaScript在载入过程中出现编译错误。与其他编程语言一样,JavaScript中也有许多关键字,不能被用做标识符(函数名、变量名等),如表3.1所示。,标识符,所谓的标识符(identifier),就是一个名称。在JavaScript中,标识符用来命名变量和函数,或

3、者用作JavaScript代码中某些循环的标签。在JavaScript中,合法的标识符的命名规则和Java以及其他许多语言的命名规则相同,第一个字符必须是字母、下划线(-)或美元符号($),其后的字符可以是字母、数字或下划线、美元符号。例3.1 下面都是合法的标识符。imy_name_name$strn1,3.2 数据类型,数值型 字符串型 布尔型 特殊数据类型,每一种计算机语言都有自己所支持的数据类型。在JavaScript脚本语言中采用的是弱类型的方式,即一个数据(变量或常量)不必首先作声明,可以在使用或赋值时再确定其数据的类型。当然也可以先声明该数据的类型,即通过在赋值时自动说明其数据类

4、型。在本节中,将详细介绍JavaScript脚本中的几种数据类型。,数值型,数字(number)是最基本的数据类型。JavaScript和其他程序设计语言(如C和Java)的不同之处在于它并不区别整型数值和浮点型数值。在JavaScript中,所有的数字都是由浮点型表示的。JavaScript采用IEEE754标准定义的64位浮点格式表示数字,这意味着它能表示的最大值是1.797693134862315710308,最小值是510324。当一个数字直接出现在JavaScript程序中时,我们称它为数值直接量(numericliteral)。JavaScript支持数值直接量的形式有几种,下面将

5、对这几种形式进行详细介绍。1整型数据在JavaScript程序中,十进制的整数是一个数字序列。例如:0781000JavaScript的数字格式允许精确地表示(253)和(253)之间的所有整数(包括(253)和(253)。但是使用超过这个范围的整数,就会失去尾数的精确性。需要注意的是,JavaScript中的某些整数运算是对32位的整数执行的,其范围从2147483648(231)到2147483647(2311)。,数值型,2十六进制和八进制JavaScript不但能够处理十进制的整型数据,还能识别十六进制(以16为基数)的数据。所谓十六进制数据,是以“0X”和“0 x”开头,其后跟随十六

6、进制数字串的直接量。十六进制的数字可以是0到9中的某个数字,也可以是a(A)到f(F)中的某个字母,它们用来表示015之间(包括0和15)的某个值,下面是十六进制整型数据的例子:0 xff/15*16+15=225(基数为10)0 xCAFE911尽管ECMAScripr标准不支持八进制数据,但是JavaScript的某些实现却允许采用八进制(基数为8)格式的整型数据。八进制数据以数字0开头,其后跟随一个数字序列,这个序列中的每个数字都在0和7之间(包括0和7),例如:0377/3*64+7*8+7=255(基数为10)由于某些JavaScript实现支持八进制数据,而有些则不支持,所以最好不

7、要使用以0开头的整型数据,因为不知道某个JavaScript的实现是将其解释为十六进制,还是解释为八进制。,数值型,3浮点型数据浮点型数据可以具有小数点,采用的是传统科学记数法的语法。一个实数值可以被表示为整数部分后加小数点和小数部分。此外,还可以使用指数法表示浮点型数据,即实数后跟随字母e或E,后面加上正负号,其后再加一个整型指数。这种记数法表示的数值等于前面的实数乘以10的指数次幂。语法:digits.digits(E|e(+|-)例如:1.2.333333333.12e11/3.1210111.234E12/1.2341012,字符串型,字符串(string)是由Unicode字符、数字

8、、标点符号等组成的序列,它是JavaScript用来表示文本的数据类型。程序中的字符串型数据是包含在单引号或双引号中的,由单引号定界的字符串中可以含有双引号,由双引号定界的字符串中也可以含有单引号。例如:单引号括起来的一个或多个字符,代码如下:啊活着的人却拥有着一颗沉睡的心双引号括起来的一个或多个字符,代码如下:呀我想学习JavaScript单引号定界的字符串中可以含有双引号,代码如下:name=myname双引号定界的字符串中可以含有单引号,代码如下:You can call me Tom!,布尔型,数值数据类型和字符串数据类型的值都无穷多,但是布尔数据类型只有两个值,这两个合法的值分别由直

9、接量“true”和“false”表示。一个布尔值代表的是一个“真值”,它说明了某个事物是真还是假。布尔值通常在JavaScript程序中用来比较所得的结果。例如:n=1这行代码测试了变量n的值是否和数值1相等。如果相等,比较的结果就是布尔值true,否则结果就是false。布尔值通常用于JavaScript的控制结构。例如,JavaScript的if/else语句就是在布尔值为true时执行一个动作,而在布尔值为false时执行另一个动作。通常将一个创建布尔值与使用这个比较的语句结合在一起。例如:if(n=1)m=n+1;elsen=n+1;上述代码检测了n是否等于1。如果相等,就给m增加1,

10、否则给n加1。有时候可以把两个可能的布尔值看作是“on(true)”和“off(false)”,或者看作是“yes(true)”和“no(false)”,这样比将它们看作是“true”和“false”更为直观。有时候把它们看作是1(true)和0(false)会更加有用(实际上JavaScript确实是这样做的,在必要时会将true转换成1,将false转换成0)。,特殊数据类型,除了以上介绍的数据类型,JavaScript还包括一些特殊的数据类型,如转义字符、未定义值等。1转义字符以反斜杠开头的不可显示的特殊字符通常称为控制字符,也被称为转义字符。通过转义字符可以在字符串中添加不可显示的特殊

11、字符,或者防止引号匹配混乱的问题。JavaScript常用的转义字符如表3.2所示。,特殊数据类型,在document.writeln();语句中使用转义字符时,只有将其放在格式化文本块中才会起作用,所以脚本必须在和的标签内。例3.2 下面是应用转义字符使字符串换行,程序代码如下:document.writeln();document.writeln(轻松学习nJavaScript语言!);document.writeln();结果:轻松学习JavaScript语言!如果上述代码不使用和的标签,则转义字符不起作用,代码如下:document.writeln(快快乐乐n平平安安!);结果:轻松学

12、习JavaScript语言!2未定义值未定义类型的变量是undefined,表示变量还没有赋值(如var a;),或者赋予一个不存在的属性值(如var a=String.notProperty;)。此外,JavaScript中有一种特殊类型的数字常量NaN,即“非数字”。当在程序中由于某种原因发生计算错误后,将产生一个没有意义的数字,此时JavaScript返回的数字值就是NaN。3空值(null)JavaScript中的关键字null是一个特殊的值,它表示为空值,用于定义空的或不存在的引用。如果试图引用一个没有定义的变量,则返回一个null值。这里必须要注意的是:null不等同于空的字符串(

13、)或0。由此可见,null与undefined的区别是,null表示一个变量被赋予了一个空值,而undefined则表示该变量尚未被赋值。,3.3 常量,当程序运行时,值始终不发生改变的量为常量(Constant)。常量主要用于为程序提供固定的和精确的值(包括数值和字符串)。数、字符逻辑值真(true)、逻辑值假(false)等都是常量。声明常量使用const来进行声明。语法:const常量名:数据类型=值;常量在程序中定义后便会在计算机中一定的位置存储下来,在该程序没有结束之前,它是不发生变化的。如果在程序中过多地使用常量,会降低程序的可读性和可维护性,当一个常量在程序内被多次引用时,可以考

14、虑在程序开始处将它设置为变量,然后再引用。当此值需要修改时,则只需更改其变量的值就可以了,既减少出错的机会,又可以提高工作效率。,3.4 变量,变量的命名 变量的声明与赋值 变量的作用域 变量的生存期,变量是指程序中一个已经命名的存储单元,它的主要作用就是为数据操作提供存放信息的容器。对于变量的使用首先必须明确变量的命名规则、变量的声明与赋值以及变量的作用域等。,变量的命名,JavaScript变量的命名规则如下。(1)必须以字母或下划线开头,中间可以是数字、字母或下划线。(2)变量名不能包含空格或加号、减号等符号。(3)不能使用JavaScript中的关键字。(4)JavaScript的变量

15、名是严格区分大小写的。例如,UserName与username就代表两个不同的变量,这一点一定要特别注意。说明:虽然JavaScript的变量可以任意命名,但是在进行编程的时候,最好还是使用便于记忆、且有意义的变量名称,以增加程序的可读性。,变量的声明与赋值,在JavaScript中,使用变量前需要先声明变量,所有的JavaScript变量都由关键字var声明,语法格式如下:var variable;在声明变量的同时也可以对变量进行赋值:var variable=11;声明变量时所遵循的规则如下。(1)可以使用一个关键字var同时声明多个变量,例如:var a,b,c/同时声明a、b和c3个变

16、量(2)可以在声明变量的同时对其赋值,即为初始化,例如:var i=1;j=2;k=3;/同时声明i、j和k3个变量,并分别对其进行初始化(3)如果只是声明了变量,并未对其赋值,则其值缺省为undefined。(4)var语句可以用作for循环和for/in循环的一部分,这样就使循环变量的声明成为循环语法自身的一部分,使用起来比较方便。(5)也可以使用var语句多次声明同一个变量,如果重复声明的变量已经有一个初始值,那么此时的声明就相当于对变量的重新赋值。,变量的声明与赋值,当给一个尚未声明的变量赋值时,JavaScript会自动用该变量名创建一个全局变量。在一个函数内部,通常创建的只是一个仅

17、在函数内部起作用的局部变量,而不是一个全局变量。要创建一个局部变量,不是赋值给一个已经存在的局部变量,而是必须使用var语句进行变量声明。另外,由于JavaScript采用弱类型的形式,因此读者可以不必理会变量的数据类型,即可以把任意类型的数据赋值给变量。例3.3 声明一些变量,代码如下:var varible=100/数值类型var str=有一条路,走过了总会想起/字符串var bue=true/布尔类型在JavaScript中,变量可以不先声明,而在使用时,再根据变量的实际作用来确定其所属的数据类型。但是笔者建议在使用变量前就对其声明,因为声明变量的最大好处就是能及时发现代码中的错误。由

18、于JavaScript是采用动态编译的,而动态编译不易于发现代码中的错误,特别是变量命名方面的错误。,变量的作用域,变量的作用域(scope)是指某变量在程序中的有效范围,也就是程序中定义这个变量的区域。在JavaScript中变量根据作用域可以分为两种:全局变量和局部变量。全局变量是定义在所有函数之外,作用于整个脚本代码的变量;局部变量是定义在函数体内,只作用于函数体的变量,函数的参数也是局部性的,只在函数内部起作用。例3.4 下面的程序代码说明了变量的作用域作用不同的有效范围:var a;/该变量在函数外声明,作用于整个脚本代码 function send()a=JavaScript va

19、r b=语言基础/该变量在函数内声明,只作用于该函数体 alert(a+b);,变量的生存期,变量的生存期是指变量在计算机中存在的有效时间。从编程的角度来说,可以简单地理解为该变量所赋的值在程序中的有效范围。JavaScript 中变量的生存期有两种:全局变量和局部变量。全局变量在主程序中定义,有效范围从其定义开始,一直到本程序结束为止。局部变量在程序的函数中定义,其有效范围只在该函数之中;当函数结束后,局部变量生存期也就结束了。,3.5 运算符,算术运算符 比较运算符 逻辑运算符 字符串运算符 赋值运算符 条件运算符 其他运算符 运算符的优先级,常量、变量、运算符和表达式,是构成一种语言的基

20、本要素,也是构成语句的基础。在本节中将介绍JavaScript的运算符。运算符是完成一系列操作的符号,JavaScript的运算符按操作数可以分为单目运算符、双目运算符和多目运算符3种;按运算符类型可以分为算术运算符、比较运算符、赋值运算符、逻辑运算符和条件运算符5种。,算术运算符,算术运算符用于连接运算表达式。算术运算符包括加(+)、减()、乘(*)、除(/)、取模(%)、自加(+)、自减(-)等运算符,常用的算术运算符如表3.3所示。,算术运算符,例3.5 下面使用算术运算符中的加运算符来计算表达式“a+b-c”的值,运行结果如图3.1所示。,程序代码如下:算术运算符的应用var a=1;

21、var b=2;var c=3;var sult=a+b-c;alert(a+b-c的运算结果为:+sult),比较运算符,比较运算符用来连接操作数来组成比较表达式。比较运算符的基本操作过程是:首先对操作数进行比较,然后返回一个布尔值true或false。在JavaScript中常用的比较运算符如表3.4所示。,比较运算符,例3.6 下面使用比较运算符中的等于“=”、与“&”和或“|”运算符来实现对Alt+方向键和Alt+方向键的屏蔽,运行结果如图3.2所示。,程序代码如下:比较运算符的应用function keydown()if(event.altKey)这里禁止使用Alt+方向键或方向键!

22、您可以试试!,比较运算符,另外,比较运算符(、=、=、=、!=、!=)也可以用于两个字符串之间的比较,同样返回一个布尔值true或false。当比较两个字符串X和Y时,JavaScript首先取出X和Y中的第一个字符的ASCII码值进行比较,例如第一个字符的ASCII码值分别是x和y,那么若x大于y,则X大于Y,若x小于y,则X小于Y,否则x就是等于y,这样就要取出X和Y中的下一个字符进行比较,以此类推,如果依次取出的每个字符的ASCII码值都相同,那么若字符串X的字符数比Y的字符数多,则X大于Y;若X的字符数比Y少,则X小于Y;若X的字符数与Y相同,则A等于B。例如:x=x、xyz=xyz、

23、xXYZ和xyXYZ返回true。,逻辑运算符,JavaScript支持的常用逻辑运算符,如表3.5所示。,其中,三目运算符主要格式如下:操作数?结果1:结果2若操作数的结果为真,则表述式的结果为结果1,否则为结果2。,字符串运算符,在JavaScript中可以使用运算符(+)对两个字符串进行连接运算,也就是将两个字符串连接起来。例3.7 下面通过实例介绍字符串运算符的应用,运行效果如图3.3所示。,程序代码如下:字符串运算符的应用var a=2009;/变量a是一个整数var b=相信明天会更好,result;var c=true;/变量c是一个布尔值document.writeln(a=2

24、009,b=相信明天会更好,c=true);document.writeln();document.write(a+b=);result=a+b;document.writeln(result);document.write(b+a=);result=b+a;document.writeln(result);document.write(b+c=);result=b+c;document.writeln(result);document.write(c+b=);result=c+b;document.writeln(result);document.write(a+b+c=);result=a

25、+b+c;document.writeln(result);从上述举例可以看出,在程序中使用字符串连接运算符时,数值型数据被转换成了相应的字符串,而布尔型数据被转换成字符串“true”。,赋值运算符,最基本的赋值运算符是等于号“=”,用于对变量进行赋值,而其他运算符可以和赋值运算符“=”联合使用,构成组合赋值运算符。JavaScript支持的常用赋值运算符如表3.6所示。,赋值运算符,例3.8 下面使用赋值运算符给指定的变量赋值,实现加、减、乘等计算功能。运行结果如图3.4所示。,程序代码如下:赋值运算符的应用 var a=1,b=2;document.writeln(a=1,b=2);doc

26、ument.writeln();document.write(a+=b=);a+=b;document.writeln(a);document.write(b+=a=);b+=a;document.writeln(b);document.write(a-=b=);a-=b;document.writeln(a);document.write(b*=a=);b*=a;document.writeln(b);,条件运算符,条件运算符是JavaScript支持的一种特殊的三目运算符,其语法格式如下:操作数?结果1:结果2如果“操作数”的值为true,则整个表达式的结果为“结果1”,否则为“结果2”。

27、例3.9 下面通过示例演示条件运算符的应用,运行效果如图3.5所示。,程序代码如下:条件运算符的应用var age,status;age=22;status=(age=18)?成年人:未成年人;document.write(小高是:+status+.);,其他运算符,1位操作运算符位操作运算符分为两种,一种是普通位运算符,另一种是位移动运算符。在进行运算前,都先将操作数转换为32位的二进制整数,然后再进行相关运算,最后的输出结果将以十进制表示。位操作运算符对数值的位进行操作,如向左或向右移位等。JavaScript中常用的位操作运算符如表3.8所示。,其他运算符,2typeof运算符typeo

28、f运算符返回它的操作数当前所容纳的数据类型。这对于判断一个变量是否已被定义特别有用。例3.10 下面是应用typeof运算符返回当前所容纳的数据类型,代码如下。typeof true 3new运算符通过new运算符来创建一个新对象。语法:new constructor(arguments)constructor:必选项。对象的构造函数。如果构造函数没有参数,则可以省略圆括号。arguments:可选项。任意传递给新对象构造函数的参数。例3.11 应用new运算符来创建新对象,代码如下:Object1=new Object;Array2=new Array();Date3=new Date(Au

29、gust 8 2008);,运算符的优先级,JavaScript运算符都有明确的优先级与结合性。优先级较高的运算符将先于优先级较低的运算符进行运算,结合性则是指具有同等优先级的运算符将按照怎样的顺序进行运算。结合性有向左结合和向右结合。例如表达式“a+b+c”,向左结合就是先计算“a+b”,即“(a+b)+c”;而向右结合就是先计算“b+c”,即“a+(b+c)”。JavaScript运算符的优先级顺序及其结合性如表3.9所示。,运算符的优先级,例3.12 下面是使用运算符()来改变运算优先级的示例。表达式“a=1+2*3”的结果为7,因为乘法的优先级比加法的优先级高,将被优先运行。通过括号“

30、()”运算符的优先级改变之后,括号内表达式将被优先执行,所以表达式“b=(1+2)*3”的结果为9。运行结果如图3.6所示。,程序代码如下:优先级的使用,3.6 表达式,表达式是一个语句集合,像一个组一样,计算结果是个单一值,然后这个结果被JavaScript归入下列数据类型之一:boolean、number、string、function或者object。一个表达式本身可以简单的如一个数字或者变量,或者它可以包含许多连接在一起的变量关键字以及运算符。例如,表达式x=7将值7赋给变量x,整个表达式计算结果为7,因此在一行代码中使用此类表达式是合法的。一旦将7赋值给x的工作完成,那么x也将是一个

31、合法的表达式。除了赋值运算符,还有许多可以用来形成一个表达式的其他运算符,例如算术运算符、字符串运算符、逻辑运算符等。,习题,一、判断题1float可以用作标识符。2在JavaScript中可以用十六进制形式表示浮点数常量。3字符串变量使用单引号()表示。4在定义JavaScript变量时,一定要指出变量名和值。5用var定义一个变量后,如果没有赋予任何值,那么它的值是空值,即null。6JavaScript规定在使用任何变量之前必须先使用var声明它。7在使用var x=1声明变量x之后,赋值语句x=我喜欢JavaScript将出错。8表达式的类型只取决于运算符,与操作数无关。9JavaSc

32、ript中的变量不区分大小写。10如果有定义var x=true,y=false;那么x&y的结果是true。,习题,二、单选题1以下哪个常量值最大?A70B025C090D0X852下面四个变量声明语句中,哪一个变量的命名是正确的?Avar forBvar txt_nameCvar myname myvalDvar 2s3下面哪一个语句定义了一个名为Myval的变量并将它的值赋为2205?Avar myval=2205Bvar MyVal=2205Cvar Myval=2205DMyval=22054下面哪一个不是JavaScript运算符?A=B=C&D$#5下面哪一个表达式的返回值为True。A!(33)D(5!=3)&(5010)6表达式160%9的计算结果是_。A5B6C7D87表达式a90+90的计算结果是_。Aa180Ba9090Ca90D1808下列运算符中,_优先级最高。A=B&0C+D*=,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号