第2章数据类型、常量与变量.ppt

上传人:豆**** 文档编号:56541031 上传时间:2022-11-02 格式:PPT 页数:66 大小:1.08MB
返回 下载 相关 举报
第2章数据类型、常量与变量.ppt_第1页
第1页 / 共66页
第2章数据类型、常量与变量.ppt_第2页
第2页 / 共66页
点击查看更多>>
资源描述

《第2章数据类型、常量与变量.ppt》由会员分享,可在线阅读,更多相关《第2章数据类型、常量与变量.ppt(66页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第2章章数据类型、常数据类型、常量与变量量与变量2.1基本数据类型基本数据类型lJavaScript中支持数字、字符串和布尔值三种中支持数字、字符串和布尔值三种基本数据类型,以下是对这三种基本数据类型基本数据类型,以下是对这三种基本数据类型的介绍。的介绍。2.1.1字符串型字符串型l字符串型是字符串型是JavaScript中用来表示文本的数据中用来表示文本的数据类型,是由类型,是由Unicode字符、数字和标点符号组字符、数字和标点符号组成的一个字符串序列。字符串通常都是用单引成的一个字符串序列。字符串通常都是用单引号或双引号括起来的。如果在字符串中包括着号或双引号括起来的。如果在字符串中包

2、括着特殊字符,可以使用转义字符来代替。特殊字符,可以使用转义字符来代替。l在在JavaScript中,字符串型数据是用引号括起的文中,字符串型数据是用引号括起的文本字符串。本字符串。l在在JavaScript中不区分中不区分“字符字符”和和“字符串字符串”,字符,字符也被当作字符串处理。字符串中可以包含用于特殊目也被当作字符串处理。字符串中可以包含用于特殊目的字符的字符。01/脚本程序开始脚本程序开始02072.1.2数字型数字型l数字型也是数字型也是JavaScript中的基本数据类型。在中的基本数据类型。在JavaScript中的数字不区分整型和浮点型,所中的数字不区分整型和浮点型,所有的

3、数字都是以浮点型来表示的。有的数字都是以浮点型来表示的。JavaScript中的数字的有效范围大约为中的数字的有效范围大约为10-30810308之间。之间。表示方法如下所示:表示方法如下所示:10;/数字数字10.1;/数字数字0.1;/数字数字3e7;/科学记数科学记数0.3E7;/科学记数科学记数2.1.3布尔型布尔型l布尔型比较简单,只有两个值,即代表真的布尔型比较简单,只有两个值,即代表真的“true”和代表假的和代表假的“false”。布尔值通常。布尔值通常是通过比较得来的,如以下代码:是通过比较得来的,如以下代码:lx2l在上面代码中,如果在上面代码中,如果x等于等于2,则返回,

4、则返回true,如,如果果x不等于不等于2,则返回,则返回false。2.2复合数据类型复合数据类型l除了基本的数据类型之外,除了基本的数据类型之外,JavaScript还支持还支持复合数据类型,复合数据类型包括对象和数组复合数据类型,复合数据类型包括对象和数组两种。两种。2.2.1对象对象l对象其实就是一些数据的集合,这些数据可以是字对象其实就是一些数据的集合,这些数据可以是字符串型、数字型、布尔型,也可以是复合型。对象符串型、数字型、布尔型,也可以是复合型。对象中的数据是已命名的数据,通常作为对象的属性来中的数据是已命名的数据,通常作为对象的属性来引用。例如一个引用。例如一个Math对象有

5、一个名为对象有一个名为PI的属性,的属性,可以通过以下方法来引用:可以通过以下方法来引用:lMath.PIlJavaScript中的对象除了拥有属性之外,还可以拥中的对象除了拥有属性之外,还可以拥有方法。例如一个窗口(有方法。例如一个窗口(Window)对象有一个名)对象有一个名为为alert的方法,可以通过以下方法来引用:的方法,可以通过以下方法来引用:window.alert(message)l日期对象日期对象JavaScript将与日期相关的所有特性封装进将与日期相关的所有特性封装进Date对象,主要用来进行一些与时间相关的操作,比如对象,主要用来进行一些与时间相关的操作,比如获取当前系

6、统时间,使用前要先创建该对象的一个获取当前系统时间,使用前要先创建该对象的一个实例:实例:ldate=newDate();/直接创建直接创建ldate=newDate(y,m,d,h,min,sec,ms);/指定日期创建指定日期创建复合数据类型l全局对象。全局对象。l全局对象是所有全局方法的拥有者,用来统一全局对象是所有全局方法的拥有者,用来统一管理全局方法,全局方法也就是指全局函数。管理全局方法,全局方法也就是指全局函数。该对象不能使用该对象不能使用new运算符创建对象实例,所运算符创建对象实例,所有方法直接调用即可。有方法直接调用即可。l数学对象数学对象l数学对象(数学对象(Math)封

7、装了与数学相关的特性,)封装了与数学相关的特性,包括一些常数和数学函数,主要使用简单一些包括一些常数和数学函数,主要使用简单一些基本的数学计算。比如求正弦、正切、余弦、基本的数学计算。比如求正弦、正切、余弦、取绝对值等。取绝对值等。l下面是这个对象的应用实例。下面是这个对象的应用实例。复合数据类型01/脚本程序开脚本程序开始始02 08 从从Math对象中获取圆周率常数,计算一个半对象中获取圆周率常数,计算一个半径为径为2单位的圆的面积单位的圆的面积复合数据类型l字符串对象字符串对象lString对象封装了与字符串有关的特性,主要用来处理字对象封装了与字符串有关的特性,主要用来处理字符串。通过

8、符串。通过String对象,可以对字符串进行剪切、合并、对象,可以对字符串进行剪切、合并、替换等等。可以调用该对象的构造函数创建一个实例,其替换等等。可以调用该对象的构造函数创建一个实例,其实在定义一个字符串类型变量时就也创建了一个实在定义一个字符串类型变量时就也创建了一个String对对象实例。象实例。l调用调用String对象的方法或属性形式如对象的方法或属性形式如“对象名对象名.方法名方法名”或或“对象名对象名.属性名属性名”,构造函数如下:,构造函数如下:String(strVal);。l看这样的一个实例,看这样的一个实例,文本串中将李白文本串中将李白静夜思静夜思的各个部的各个部分分别

9、提取出来,并格式化输出。标题加粗,文本居中对分分别提取出来,并格式化输出。标题加粗,文本居中对齐,诗歌正文颜色为灰色。齐,诗歌正文颜色为灰色。示例代码如下所示示例代码如下所示。复合数据类型0102!-03varcomment=静夜思李白床前明月光,疑是地上霜。举头望明月,低头思故静夜思李白床前明月光,疑是地上霜。举头望明月,低头思故乡。乡。;/诗的内容诗的内容04varpartial=comment.substring(0,3);/取出标题取出标题05partial=partial.bold();/标题加粗标题加粗06document.write();/输出输出HTML标签标签“”,并设置居中

10、对齐并设置居中对齐07document.write(partial);/输出标题输出标题08partial=comment.slice(3,5);/取出作者取出作者09document.write();/输出换行标签输出换行标签10document.write(partial);/输出作者输出作者11partial=comment.slice(5,17);/取出第一句诗文取出第一句诗文12partial=partial.fontcolor(gray);/设置颜色为设置颜色为gray(灰色)(灰色)13document.write();/输出换行标签输出换行标签14document.write(

11、partial);/输出诗句输出诗句15partial=comment.slice(17,29);/取出第二句诗文取出第二句诗文16partial=partial.fontcolor(gray);/设置颜色为设置颜色为gray(灰色)(灰色)17document.write();/输出换行标签输出换行标签18document.write(partial);/输出诗句输出诗句19document.write();/输出输出HTML标签标签“”的的结束标签结束标签20-212.2.2数组数组l数组与对象一样,也是一些数据的集合,这些数据数组与对象一样,也是一些数据的集合,这些数据也可以是字符串型、

12、数字型、布尔型,或者是复合也可以是字符串型、数字型、布尔型,或者是复合型。与对象不同的,数组中的数据并没有被命名,型。与对象不同的,数组中的数据并没有被命名,即数组的中数据没有名字,因此不能通过名字来引即数组的中数据没有名字,因此不能通过名字来引用该数据。在数组中为每个数据都编了一个号,这用该数据。在数组中为每个数据都编了一个号,这个号称为数组的下标。在个号称为数组的下标。在JavaScript中数组的下标中数组的下标是从是从0开始,通过使用数组名加下标的方法可以获取开始,通过使用数组名加下标的方法可以获取数组中的某个数据。如以下代码分别获取名为数组中的某个数据。如以下代码分别获取名为abc数

13、组的第数组的第1个和第个和第3个数据:个数据:labc0labc2l内部对象内部对象Array封装了所有和数组相关的方法和属性,其封装了所有和数组相关的方法和属性,其内存在多个数据段组合存储。可以形象的理解为一种有很内存在多个数据段组合存储。可以形象的理解为一种有很多连续房间的楼层,每个房间都可以存放货物,提取货物多连续房间的楼层,每个房间都可以存放货物,提取货物时只需要给出楼层号和房间编号即可时只需要给出楼层号和房间编号即可。l下面是一个实例,创建一个数组用于保存古代几个大诗人下面是一个实例,创建一个数组用于保存古代几个大诗人的名字,通过遍历数组逐一输出每个诗人的名字的名字,通过遍历数组逐一

14、输出每个诗人的名字。01/脚本程序开始脚本程序开始02!-03varpoets=newArray(王维王维,杜甫杜甫,李白李白,白居易白居易);/创建数组创建数组04document.write(古代几个大诗人:古代几个大诗人:);/输出标题输出标题05for(ninpoets)/逐个输出数组元素逐个输出数组元素0607document.write(+poetsn);/输出诗人的名字输出诗人的名字0809-102.3其他数据类型其他数据类型l除了基本数据类型与复合数据类型之外,除了基本数据类型与复合数据类型之外,JavaScript还支持函数、还支持函数、Null与与Undefined三三种其

15、他数据类型。种其他数据类型。2.3.1函数函数l函数(函数(function)是一段可执行的)是一段可执行的JavaScript代码,代码,函数具有一次定义多次使用的特点。在函数具有一次定义多次使用的特点。在JavaScript中的函数可以带有中的函数可以带有0个或多个参数。在函数体中执个或多个参数。在函数体中执行完行完JavaScript代码之后,也可以返回一个或不返代码之后,也可以返回一个或不返回值。在回值。在JavaScript中提供了很多预定义的函数,中提供了很多预定义的函数,如用于检测非数字值的如用于检测非数字值的isNaN()函数、用于计算平函数、用于计算平方根的方根的Math.s

16、qrt()函数等等。其使用方法如下所函数等等。其使用方法如下所示:示:lvarbFlag=isNaN(0/0);lvarx=Math.sqrt(100);2.3.2nulllnull是一个特殊的数据类型,其所代表的意思是一个特殊的数据类型,其所代表的意思为为“空空”。需要注意,这个。需要注意,这个“空空”并不代表是并不代表是0或空字符串。数字或空字符串。数字0代表的是数字,是数字型代表的是数字,是数字型的数据;空字符串代表的是长度为的数据;空字符串代表的是长度为0的字符串,的字符串,是字符串类型的数据。而是字符串类型的数据。而null代表没有值,不代表没有值,不是一个有效的数字、字符串,也不是

17、数组、对是一个有效的数字、字符串,也不是数组、对象和函数,什么数据类型都不是。象和函数,什么数据类型都不是。编写程序,测试编写程序,测试null值值,示例代码如下所示。,示例代码如下所示。l01/脚本程序开始脚本程序开始l02!-l03varx=10;/定义变量定义变量x,并给其赋值,并给其赋值10l04vary=null;/定义变量定义变量y,并赋一个空值,表示,并赋一个空值,表示“什么都没有什么都没有”l05if(x=null)/如果如果x为空值则为空值则l06l07document.write(x的值为空的值为空);/输出提示输出提示l08l09if(y=null)/如果如果y为空则为空

18、则l10l11document.write(y的值为空的值为空);/输出提示输出提示l12l13-l142.3.3undefinedlundefined也是一个特殊的数据类型,只有定义也是一个特殊的数据类型,只有定义了一个变量但没有为该变量赋值、使用了一个并了一个变量但没有为该变量赋值、使用了一个并未定义的变量、或者是使用了一个不存的对象的未定义的变量、或者是使用了一个不存的对象的属性时,属性时,JavaScript才会返回才会返回undefined。通常。通常用来判断一个变量是否已经赋值。用来判断一个变量是否已经赋值。lnull值表示一个变量拥有空值。可以理解为已经把值表示一个变量拥有空值。

19、可以理解为已经把给给“空空”给了某个变量,而给了某个变量,而undefined则表示一个则表示一个变量什么都没有得到,连变量什么都没有得到,连“空空”都没有。都没有。2.4数据类型的转换数据类型的转换lJavaScript支持字符串型、数字型、布尔型等支持字符串型、数字型、布尔型等数据类型,当这些数据类型之间需要进行运算数据类型,当这些数据类型之间需要进行运算时,就必须将不同的数据类型转换为相同的数时,就必须将不同的数据类型转换为相同的数据类型。据类型。2.4.1隐式类型转换隐式类型转换lJavaScript是一种无类型(是一种无类型(notype)的语言,)的语言,这种这种“无类型无类型”并

20、不是指并不是指JavaScript没有数据没有数据类型,而是指类型,而是指JavaScript是一种松散类型、动是一种松散类型、动态类型的语言。因此,在态类型的语言。因此,在JavaScript中定义一中定义一个变量时,是不需要指定变量的数据类型,这个变量时,是不需要指定变量的数据类型,这就使得就使得JavaScript可以很方便灵活地进行隐式可以很方便灵活地进行隐式类型转换。类型转换。2.4.2显式类型转换显式类型转换l在在JavaScript中除了可以隐式转换数据类型之中除了可以隐式转换数据类型之外,还可以显式转换数据类型。显式转换数据外,还可以显式转换数据类型。显式转换数据类型,可以增强

21、代码的可读性。类型,可以增强代码的可读性。l1.数字转换为字符串数字转换为字符串a.要把一个数字转换为字符串,只要给它添加一个空的要把一个数字转换为字符串,只要给它添加一个空的字符串即可:字符串即可:varn=100;varn_as_string=n+;b.要让数字更加显式地转换为字符串要让数字更加显式地转换为字符串,可以使用可以使用String()函数函数:varstring_value=String(number);c.使用使用toString()方法方法:string_value=number.toString();Number对象的(基本的数字转换为对象的(基本的数字转换为Number

22、对象,以便对象,以便可以调用这个方法)可以调用这个方法)toString()方法有一个可选的参数,方法有一个可选的参数,该参数用来指定转换的基数。如果不指定这个参数,转该参数用来指定转换的基数。如果不指定这个参数,转换会以换会以10为基数进行。然而,也可以按照其他的基数为基数进行。然而,也可以按照其他的基数(2到到36之间的数)来转换数字。之间的数)来转换数字。l例如:varn=17;binary_string=n.toString(2);/Evaluatesto10001octal_string=0+n.toString(8);/Evaluatesto021hex_string=0 x+n.

23、toString(16);/Evaluatesto0 x11ld.toFixed()方法把一个数字转换为字符串,并且显示小数方法把一个数字转换为字符串,并且显示小数点后的指定的位数。它不使用指数表示法。点后的指定的位数。它不使用指数表示法。varn=123456.789;n.toFixed(0);/123457n.toFixed(2);/123456.79“le.toExponential()使用指数表示法把一个数字转换为字符使用指数表示法把一个数字转换为字符串,小数点前面有串,小数点前面有1位数,而小数点后面有特定的位数。位数,而小数点后面有特定的位数。varn=123456.789;n.t

24、oExponential(1);/1.2e+5n.toExponential(3);/1.235e+5“lf.toPrecision(num)返回返回f的字符串表示,包含的字符串表示,包含num个有个有效数字。如果效数字。如果num足够大,能够包括足够大,能够包括NumberObject整整数部分的所有数字,那么返回的字符串将采用定点计数法。数部分的所有数字,那么返回的字符串将采用定点计数法。否则,采用指数计数法,即小数点前有一位数字,小数点否则,采用指数计数法,即小数点前有一位数字,小数点后有后有num-1位数字。必要时,该数字会被舍入或用位数字。必要时,该数字会被舍入或用0补补足。足。va

25、rn=123456.789;n.toPrecision(4);/1.235e+5n.toPrecision(7);/123456.8l2.字符串转换为数字字符串转换为数字a.将一个字符串转换为数字的一种缺少些技巧但是很清楚将一个字符串转换为数字的一种缺少些技巧但是很清楚明白的方法就是:把明白的方法就是:把Number()构造函数作为一个函数来调构造函数作为一个函数来调用:用:varnumber=Number(string_value);b.parseInt()只截取整数,如果一个字符串以只截取整数,如果一个字符串以0 x或或0X开开头,头,parseInt()将其解析成为一个十六进制的数字,将

26、其解析成为一个十六进制的数字,parseInt()甚至可以接受一个参数来指定要解析的数字的基数,合法甚至可以接受一个参数来指定要解析的数字的基数,合法的值在的值在2到到36之间。之间。parseInt(3blindmice);/Returns3parseInt(12.34);/Returns12parseInt(0 xFF);/Returns255parseInt(11,2);/Returns3(1*2+1)parseInt(ff,16);/Returns255(15*16+15)parseInt(077,8);/Returns63(7*8+7)parseInt(077,10);/Return

27、s77(7*10+7)lc.parseFloat()截取整数和浮点数。截取整数和浮点数。parseFloat(3.14meters);/Returns3.14d.如果如果parseInt()和和parseFloat()不能够把指定不能够把指定的字符串转换为数字,它们就会返回的字符串转换为数字,它们就会返回NaN(非数非数字值字值):parseInt(eleven);/ReturnsNaNparseFloat($72.47);/ReturnsNaN数据类型的转换数据类型的转换0102192.5常量常量l常量(常量(Literals)通常用来表示一个固定的值,)通常用来表示一个固定的值,这个值是不

28、会被改变的,在这个值是不会被改变的,在JavaScript中常量中常量分为布尔常量、整数常量、浮点常量、字符串分为布尔常量、整数常量、浮点常量、字符串常量和数组常量五种。常量可以直接出现在常量和数组常量五种。常量可以直接出现在JavaScript的程序中。的程序中。2.5.1整数常量整数常量l在在JavaScript中的数字可以分为整数与浮点数中的数字可以分为整数与浮点数两种。当一个整数直接出现在两种。当一个整数直接出现在JavaScript程序程序中时,这个整数就是整数常量。在中时,这个整数就是整数常量。在JavaScript中整数常量又可以分为以下三种:中整数常量又可以分为以下三种:l(1

29、)十进制整数:)十进制整数:l(2)八进制整数:)八进制整数:l(3)十六进制整数:)十六进制整数:2.5.2浮点常量浮点常量l浮点常量可以包含小数点,其表示方法有以下浮点常量可以包含小数点,其表示方法有以下两种:两种:l(1)传统记数法:传统记数法是将一个浮点)传统记数法:传统记数法是将一个浮点数分为三个部分,数分为三个部分,l(2)科学记数法:当一个数字很大或很小的)科学记数法:当一个数字很大或很小的时候,可以使用科学记数法来表示。时候,可以使用科学记数法来表示。2.5.3字符串常量字符串常量l字符串是由单引号(字符串是由单引号()或双引号()或双引号()括起来)括起来的字符序列。其中字符

30、序列的个数可以是零个的字符序列。其中字符序列的个数可以是零个或多个。单引号所括起来的字符序列里可以包或多个。单引号所括起来的字符序列里可以包括双引号,而双引号所括起来的字符序列里也括双引号,而双引号所括起来的字符序列里也可以包含单引号。字符串常量必须写在一行中,可以包含单引号。字符串常量必须写在一行中,如果换行的话,如果换行的话,JavaScript会认为是两个语句会认为是两个语句而产生错误。而产生错误。下面是几种常量。下面是几种常量。l“今天天气真好!今天天气真好!”;/字符串常量字符串常量l1;1e1;077;/数字型常量数字型常量ltrue;false;/布尔型常量布尔型常量2.5.4字

31、符串中的转义字符字符串中的转义字符l上一节中提到字符串常量必须使用单引号或双上一节中提到字符串常量必须使用单引号或双引号括起来,如果一个字符串本身包含了单引引号括起来,如果一个字符串本身包含了单引号或双引号,那应该怎么办?假设一个字符串号或双引号,那应该怎么办?假设一个字符串如下所示:如下所示:lJavaScript中可以包含单引号(中可以包含单引号()或双引号)或双引号()lll转义符的使用转义符的使用ll!-ldocument.write(JavaScript中可以包含单引中可以包含单引号(号()或双引号()或双引号(”));ldocument.write(本机的操作系统安装在本机的操作系

32、统安装在c:winntsystem32下下);lalert(学做网页的两个基础:学做网页的两个基础:nHTMLnJavaScript);l-lllll2.5.5布尔常量布尔常量l布尔常量是比较简单的一种常量,只有两种值,布尔常量是比较简单的一种常量,只有两种值,一种是一种是true(真),一种是(真),一种是false(假)。在有(假)。在有些时候,些时候,JavaScript也可以把也可以把0和和1分别看成分别看成false和和true。布尔常量常用于条件判断语句中。布尔常量常用于条件判断语句中。常量常量l常量的使用方法常量的使用方法l常量直接在语句中使用,因为它的值不需常量直接在语句中使用

33、,因为它的值不需要改变,所以不需要再次知道其存储地点。要改变,所以不需要再次知道其存储地点。下面通过举例演示常量的使用方法下面通过举例演示常量的使用方法0102!-03document.write(JavaScript编程,乐趣无穷编程,乐趣无穷!);/使用字符串常量使用字符串常量04document.write(+3+周学通周学通JavaScript!);/使用数值常量使用数值常量305if(true)/使用布尔型常量使用布尔型常量true0607document.write(if语句中使用了布尔常量:语句中使用了布尔常量:+true);/输出提示输出提示089document.write(

34、八进制数值常量八进制数值常量011输出为十进制:输出为十进制:+011);10/使用使用8进制常量和十进制常量进制常量和十进制常量10document.write(十六进制数值常量十六进制数值常量0 xf输出为十进制:输出为十进制:+0 xf);11-122.5.6数组常量数组常量l数组就是一些数据的集合,在数组就是一些数据的集合,在JavaScript中数中数组中的数据可以是任何数据类型,包括数组。组中的数据可以是任何数据类型,包括数组。数组的定义方法如下所示:数组名数组的定义方法如下所示:数组名=数组值数组值1,数组值数组值2,数组值数组值3lll数组数组ll!-larr=JavaScri

35、pt,2,true;ldocument.write(arr0+);ldocument.write(arr1+);ldocument.write(arr2+);l-llllllll数组数组ll!-larr=JavaScript,true,;ldocument.write(arr0+);ldocument.write(arr1+);ldocument.write(arr2+);ldocument.write(arr3+);l-lllll2.6变量变量l变量(变量(variable)是相对常量而言的,常量通)是相对常量而言的,常量通常是一个不会改变的固定值,而变量是对应到常是一个不会改变的固定值,而

36、变量是对应到某个值的一个符号,这个符号中的值可能会随某个值的一个符号,这个符号中的值可能会随着程序的执行而改变,因此称为着程序的执行而改变,因此称为“变量变量”。在。在很多情况下,变量又称为标识符很多情况下,变量又称为标识符(identifier)。)。2.6.1变量的命名方式变量的命名方式l变量可以用来存储数据,变量可以用来存储数据,JavaScript中是通过中是通过变量名来调用这些被存储的数据。变量名必须变量名来调用这些被存储的数据。变量名必须以以ASCII字符或下划线(字符或下划线(_)开头,第)开头,第1个字母个字母不能是数字,但其后可以是数字或其他字母。不能是数字,但其后可以是数字

37、或其他字母。变量变量l变量的命名规则变量的命名规则lJavaScript变量的命名必须以字母或下划线开变量的命名必须以字母或下划线开始,后可跟下划线或数字,但不能使用特殊符始,后可跟下划线或数字,但不能使用特殊符号。号。name/合法的变量名合法的变量名_name/合法的变量名合法的变量名name10/合法的变量名合法的变量名name_10/合法的变量名合法的变量名name_n/合法的变量名合法的变量名12name/不合法不合法的变量名的变量名$name/不合法不合法的变量名的变量名$#name/不合法不合法的变量名的变量名下面来看关于变量命名的实例:下面来看关于变量命名的实例:2.6.2变量

38、类型变量类型lJavaScript与其他程序语言之间有些区别,其与其他程序语言之间有些区别,其他程序语言大多需要为变量指定一个数据类型,他程序语言大多需要为变量指定一个数据类型,例如将一个变量指定为整数型,那么这个变量例如将一个变量指定为整数型,那么这个变量就只能存储整数型数据,不可以存储浮点型或就只能存储整数型数据,不可以存储浮点型或其他类型的数据。而其他类型的数据。而JavaScript中的变量是没中的变量是没有类型(有类型(notype)的,这就意味着在)的,这就意味着在JavaScript中的变量可以是任何一种数据类型。中的变量可以是任何一种数据类型。2.6.3定义变量定义变量l在在J

39、avaScript中,使用一个变量之前,必须要先中,使用一个变量之前,必须要先定义该变量。只有在定义了一个变量之后,系统定义该变量。只有在定义了一个变量之后,系统才会准备一个内存空间来存储这个变量的值,而才会准备一个内存空间来存储这个变量的值,而程序员可以通过变量名来存储或读取变量的值。程序员可以通过变量名来存储或读取变量的值。在在JavaScript中可以使用关键字中可以使用关键字var来定义一个来定义一个变量。变量。lvara=1;lalert(typeofa);变量变量01/脚本程序开始脚本程序开始02!-03varnA=10;/定义两变量并赋初始值定义两变量并赋初始值04varnB=2

40、0;05document.write(交换前交换前);/输出交换前两变量的值输出交换前两变量的值06document.write(nA=+nA);/输出输出nA07document.write(nB=+nB);/输出输出nB08varnTemp=nA;/交换两变量的值交换两变量的值09nA=nB;10nB=nTemp;11document.write(交换后交换后);/输出交换后两变量的值输出交换后两变量的值12document.write(nA=+nA);/输出输出nA13document.write(nB=+nB);/输出输出nB14-152.6.4定义变量的注意事项定义变量的注意事项l虽

41、然在虽然在JavaScript中定义变量是一件十分简单的中定义变量是一件十分简单的事情,但是在定义变量时,有以下几点是需要注事情,但是在定义变量时,有以下几点是需要注意的:意的:l2.6.4.1重复定义变量重复定义变量l2.6.4.2变量必须要先定义后使用变量必须要先定义后使用l2.6.4.3给未定义的变量赋值给未定义的变量赋值l2.6.4.4引用未赋值的变量引用未赋值的变量lll重复定义变量重复定义变量ll!-lvarx=1;ldocument.write(x+);lvarx=test;ldocument.write(x);l-llllllll未定义变量llllllllll给未定义的变量赋值

42、lllllllu当在函数中不声明就直接为变量赋值时,当在函数中不声明就直接为变量赋值时,JavaScriptJavaScript会把它视为全局变量进行处理。由于是全局变量,函数会把它视为全局变量进行处理。由于是全局变量,函数外代码可以访问该变量的值,这等于间接泄露了函数的外代码可以访问该变量的值,这等于间接泄露了函数的隐私。隐私。lll引用未赋值的变量lllllll2.6.5变量的值变量的值l由于由于JavaScript的变量不需要指定数据类型,因此变量值可的变量不需要指定数据类型,因此变量值可以是任何类型的数据,包括:数字型(以是任何类型的数据,包括:数字型(number):整数型):整数型

43、或浮点数,如:或浮点数,如:123或或12.3。l布尔型:又称逻辑型(布尔型:又称逻辑型(logical),只能是),只能是true或或false。l字符串型(字符串型(string):用单引号或双引号括起来的字符串。):用单引号或双引号括起来的字符串。l空值(空值(null):这是一种特殊的类型,表示没有值,即该变):这是一种特殊的类型,表示没有值,即该变量为空。量为空。l未定义值(未定义值(undefined):表示变量还没有被赋值。):表示变量还没有被赋值。2.6.6变量的有效范围变量的有效范围l变量可以根据其有效范围分为全局变量与局部变量可以根据其有效范围分为全局变量与局部变量两种。其

44、中全局(变量两种。其中全局(global)变量从定义开)变量从定义开始,到整个始,到整个JavaScript代码结束为止,都可以代码结束为止,都可以使用;而局部(使用;而局部(local)变量只有在函数内部)变量只有在函数内部里才生效里才生效.lll全局变量全局变量lllllll请点击请点击llllllll局部变量局部变量lllllll请点击请点击ll2.6.7使用变量的注意事项使用变量的注意事项l在使用变量的时候,有以下几点是需要注意的:在使用变量的时候,有以下几点是需要注意的:l2.6.7.1变量的优先级变量的优先级l2.6.7.2在函数体内定义全局变量在函数体内定义全局变量l2.6.7.

45、3嵌套函数体中的变量的有效范围嵌套函数体中的变量的有效范围l2.6.7.4局部变量在整个函数体内都有效局部变量在整个函数体内都有效lll局部变量的优先级比同名的全局变量要高局部变量的优先级比同名的全局变量要高ll!-l/定义全局变量定义全局变量lvarx=这是一个全局变量这是一个全局变量l/定义函数定义函数lfunctionwriteText()ll/定义了一个与全局变量同名的局部变量定义了一个与全局变量同名的局部变量lvarx=这是一个局部变量这是一个局部变量;l/输出局部变量输出局部变量ldocument.write(x+);ll/调用函数调用函数lwriteText();l/输出全局变量

46、输出全局变量ldocument.write(x+);l-llllllll在函数体内定义全局变量在函数体内定义全局变量ll!-l/定义函数定义函数lfunctionwriteText()ll/使用使用var关键字定义的变量为局部变量关键字定义的变量为局部变量lvarx=这是一个局部变量这是一个局部变量;l/直接给没有定义的变量赋值,该变量即为全直接给没有定义的变量赋值,该变量即为全局变量局变量ly=这是一个全局变量这是一个全局变量;l/在函数体内可以输出局部变量在函数体内可以输出局部变量ldocument.write(x+);l/在函数体内也可以输出全局变量在函数体内也可以输出全局变量ldocu

47、ment.write(y+);ll/调用函数调用函数lwriteText();l/在函数体外可以输出全局变量,但不能输出函数体内的局部变量。在函数体外可以输出全局变量,但不能输出函数体内的局部变量。ldocument.write(y+);l/如果有以下代码,将会出错如果有以下代码,将会出错l/document.write(x+);l-llllllll嵌套函数中的变量嵌套函数中的变量ll!-l/定义函数定义函数lfunctionwriteText()ll/此处定义的局部变量可以在整个此处定义的局部变量可以在整个writeText()函数体中使函数体中使用用l/也可以在嵌套在该函数体中的其他函数中

48、使用也可以在嵌套在该函数体中的其他函数中使用lvarx=这是一个局部变量这是一个局部变量;l/定义一个嵌套的函数定义一个嵌套的函数lfunctionwriteText1()ll/嵌套函数中的变量,该变量只能在嵌套函数中的变量,该变量只能在writeText1()函数体中使用函数体中使用l/不能在不能在writeText1()函数体之外使用函数体之外使用lvary=这是一个嵌套函数中的变量这是一个嵌套函数中的变量;l/输出局部变量输出局部变量xldocument.write(x+);l/输出嵌套函数中的变量输出嵌套函数中的变量yldocument.write(y+);ll/调用嵌套的函数调用嵌套

49、的函数lwriteText1();l/输出局部变量输出局部变量xldocument.write(x+);l/如果有以下代码,将会出错如果有以下代码,将会出错l/document.write(y+);ll/调用函数调用函数lwriteText();l-llllllll局部变量在整个函数体内都有效局部变量在整个函数体内都有效ll!-l/定义一个全局变量定义一个全局变量lvarx=这是一个全局变量这是一个全局变量;l/定义函数定义函数lfunctionwriteText()ll/输出变量输出变量x的值的值ldocument.write(x+);l/定义一个与全局变量同名的局部变量定义一个与全局变量同

50、名的局部变量lvarx=这是一个局部变量这是一个局部变量;l/输出局部变量输出局部变量xldocument.write(x+);ll/调用函数调用函数lwriteText();l-llllllll局部变量在整个函数体内都有效局部变量在整个函数体内都有效ll!-lfunctionwriteText()ll/创建一个循环语句创建一个循环语句lfor(varj=0;j10;j+)ll/在循环语句中定义一个变量在循环语句中定义一个变量kl/该变量不但在循环语句中起作用,该变量不但在循环语句中起作用,还会在整个函数体中起作用还会在整个函数体中起作用lvark=20;ldocument.write(j=+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 企业培训

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

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