您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 第2章 数据类型、常量与变量
第2章数据类型、常量与变量•在计算机程序中都是通过值(value)来进行运算的,能够表示并操作值的类型为数据类型。在本章里将会介绍JavaScript中的常量(literal)、变量(variable)和数据类型(datatype)。2.1基本数据类型•JavaScript中支持数字、字符串和布尔值三种基本数据类型,以下是对这三种基本数据类型的介绍。2.1.1字符串型•字符串型是JavaScript中用来表示文本的数据类型,是由Unicode字符、数字和标点符号组成的一个字符串序列。字符串通常都是用单引号或双引号括起来的。如果在字符串中包括着特殊字符,可以使用转义字符来代替。2.1.2数字型•数字型也是JavaScript中的基本数据类型。在JavaScript中的数字不区分整型和浮点型,所有的数字都是以浮点型来表示的。JavaScript中的数字的有效范围大约为10-308~10308之间。2.1.3布尔型•布尔型比较简单,只有两个值,即代表真的“true”和代表假的“false”。布尔值通常是通过比较得来的,如以下代码:•x==2•在上面代码中,如果x等于2,则返回true,如果x不等于2,则返回false。2.2复合数据类型•除了基本的数据类型之外,JavaScript还支持复合数据类型,复合数据类型包括对象和数组两种。2.2.1对象•对象其实就是一些数据的集合,这些数据可以是字符串型、数字型、布尔型,也可以是复合型。对象中的数据是已命名的数据,通常作为对象的属性来引用。例如一个超链接(Link)对象有一个名为text的属性,可以通过以下方法来引用:•link.text•JavaScript中的对象除了拥有属性之外,还可以拥有方法。例如一个窗口(Window)对象有一个名为alert的方法,可以通过以下方法来引用:•window.alert(message)2.2.2数组•数组与对象一样,也是一些数据的集合,这些数据也可以是字符串型、数字型、布尔型,或者是复合型。与对象不同的,数组中的数据并没有被命名,即数组的中数据没有名字,因此不能通过名字来引用该数据。在数组中为每个数据都编了一个号,这个号称为数组的下标。在JavaScript中数组的下标是从0开始,通过使用数组名加下标的方法可以获取数组中的某个数据。如以下代码分别获取名为abc数组的第1个和第3个数据:•abc[0]•abc[1]2.3其他数据类型•除了基本数据类型与复合数据类型之外,JavaScript还支持函数、Null与Undefined三种其他数据类型。2.3.1函数•函数(function)是一段可执行的JavaScript代码,函数具有一次定义多次使用的特点。在JavaScript中的函数可以带有0个或多个参数。在函数体中执行完JavaScript代码之后,也可以返回一个或不返回值。在JavaScript中提供了很多预定义的函数,如用于检测非数字值的isNaN()函数、用于计算平方根的Math.sqrt()函数等等。其使用方法如下所示:•varbFlag=isNaN(0/0);•varx=Math.sqrt(100);2.3.2null•null是一个特殊的数据类型,其所代表的意思为“空”。需要注意,这个“空”并不代表是0或空字符串。数字0代表的是数字,是数字型的数据;空字符串代表的是长度为0的字符串,是字符串类型的数据。而null代表没有值,不是一个有效的数字、字符串,也不是数组、对象和函数,什么数据类型都不是。2.3.3undefined•undefined也是一个特殊的数据类型,只有定义了一个变量但没有为该变量赋值、使用了一个并未定义的变量、或者是使用了一个不存的对象的属性时,JavaScript才会返回undefined。2.4数据类型的转换•JavaScript支持字符串型、数字型、布尔型等数据类型,当这些数据类型之间需要进行运算时,就必须将不同的数据类型转换为相同的数据类型。2.4.1隐式类型转换•JavaScript是一种无类型(notype)的语言,这种“无类型”并不是指JavaScript没有数据类型,而是指JavaScript是一种松散类型、动态类型的语言。因此,在JavaScript中定义一个变量时,是不需要指定变量的数据类型,这就使得JavaScript可以很方便灵活地进行隐式类型转换。2.4.2显式类型转换•在JavaScript中除了可以隐式转换数据类型之外,还可以显式转换数据类型。显式转换数据类型,可以增强代码的可读性。显式类型转换的方法有以下两种:•2.4.2.1将对象转换成字符串•2.4.2.2基本数据类型转换2.5常量•常量(Literals)通常用来表示一个固定的值,这个值是不会被改变的,在JavaScript中常量分为布尔常量、整数常量、浮点常量、字符串常量和数组常量五种。常量可以直接出现在JavaScript的程序中。2.5.1整数常量•在JavaScript中的数字可以分为整数与浮点数两种。当一个整数直接出现在JavaScript程序中时,这个整数就是整数常量。在JavaScript中整数常量又可以分为以下三种:•(1)十进制整数:•(2)八进制整数:•(3)十六进制整数:2.5.2浮点常量•浮点常量可以包含小数点,其表示方法有以下两种:•(1)传统记数法:传统记数法是将一个浮点数分为三个部分,•(2)科学记数法:当一个数字很大或很小的时候,可以使用科学记数法来表示。2.5.3字符串常量•字符串是由单引号(')或双引号()括起来的字符序列。其中字符序列的个数可以是零个或多个。单引号所括起来的字符序列里可以包括双引号,而双引号所括起来的字符序列里也可以包含单引号。字符串常量必须写在一行中,如果换行的话,JavaScript会认为是两个语句而产生错误。2.5.4字符串中的转义字符•上一节中提到字符串常量必须使用单引号或双引号括起来,如果一个字符串本身包含了单引号或双引号,那应该怎么办?假设一个字符串如下所示:•JavaScript中可以包含单引号(')或双引号()2.5.5布尔常量•布尔常量是比较简单的一种常量,只有两种值,一种是true(真),一种是false(假)。在有些时候,JavaScript也可以把0和1分别看成false和true。布尔常量常用于条件判断语句中。2.5.6数组常量•数组就是一些数据的集合,在JavaScript中数组中的数据可以是任何数据类型,包括数组。数组的定义方法如下所示:数组名=[数组值1,数组值2,数组值3……]2.6变量•变量(variable)是相对常量而言的,常量通常是一个不会改变的固定值,而变量是对应到某个值的一个符号,这个符号中的值可能会随着程序的执行而改变,因此称为“变量”。在很多情况下,变量又称为标识符(identifier)。2.6.1变量的命名方式•变量可以用来存储数据,JavaScript中是通过变量名来调用这些被存储的数据。变量名必须以ASCII字符或下划线(_)开头,第1个字母不能是数字,但其后可以是数字或其他字母。2.6.2变量类型•JavaScript与其他程序语言之间有些区别,其他程序语言大多需要为变量指定一个数据类型,例如将一个变量指定为整数型,那么这个变量就只能存储整数型数据,不可以存储浮点型或其他类型的数据。而JavaScript中的变量是没有类型(notype)的,这就意味着在JavaScript中的变量可以是任何一种数据类型。2.6.3定义变量•在JavaScript中,使用一个变量之前,必须要先定义该变量。只有在定义了一个变量之后,系统才会准备一个内存空间来存储这个变量的值,而程序员可以通过变量名来存储或读取变量的值。在JavaScript中可以使用关键字var来定义一个变量。2.6.4定义变量的注意事项•虽然在JavaScript中定义变量是一件十分简单的事情,但是在定义变量时,有以下几点是需要注意的:•2.6.4.1重复定义变量•2.6.4.2变量必须要先定义后使用•2.6.4.3给未定义的变量赋值•2.6.4.4引用未赋值的变量2.6.5变量的值•由于JavaScript的变量不需要指定数据类型,因此变量值可以是任何类型的数据,包括:数字型(number):整数型或浮点数,如:123或12.3。•布尔型:又称逻辑型(logical),只能是true或false。•字符串型(string):用单引号或双引号括起来的字符串。•空值(null):这是一种特殊的类型,表示没有值,即该变量为空。•未定义值(undefined):表示变量还没有被赋值。2.6.6变量的有效范围•变量可以根据其有效范围分为全局变量与局部变量两种。其中全局(global)变量从定义开始,到整个JavaScript代码结束为止,都可以使用;而局部(local)变量只有在函数内部里才生效。(具体内容请参照书。)2.6.7使用变量的注意事项•在使用变量的时候,有以下几点是需要注意的:•2.6.7.1变量的优先级•2.6.7.2在函数体内定义全局变量•2.6.7.3嵌套函数体中的变量的有效范围•2.6.7.4局部变量在整个函数体内都有效2.7保留字•在为变量命名时,是不能与JavaScript中的保留字同名。因为这些保留字对于JavaScript来说具有特殊意义,是JavaScript语法中的一部分。事实上,保留字不但不能用作变量名,也不能用作函数名以及循环标签。2.7.1JavaScript中的保留字•在JavaScript中一共有28个保留字,表2-2列出了所有的JavaScript中的保留字,这些保留字不能用作变量名、函数名以及循环标签。(具体内容请参照书。)2.7.2ECMA中的保留字•除了JavaScript中的保留字之外,表2-3中是ECMAScript扩展的保留字。使用这些保留字是ECMAScript用来作为扩展语言所用的,在JavaScript中不会阻止程序员使用这些保留字作标识符,但是应该尽量避免使用。(具体内容请参照书。)2.7.3避免使用的字符串•除了JavaScript中的保留字不能做标识符、ECMA中的保留字不建议标识符之外,表2-4中的字符串也尽量不要用来当作标识符使用,因为这些字符串都是JavaScript与ECMAScript中的全局变量名或全局函数名。如果使用这些字符串作为标识符,很容易产生错误。(具体内容请参照书。)2.8小结•JavaScript中的基本数据类型有数字型、字符串型和布尔值三种,除了基本数据类型之外,JavaScript还支持对象、数组、函数、null和undefined数据类型。各种不同的数据类型之间可以通过显式或隐式方式进行转换。JavaScript与其他语言一样,也支持常量与变量,不过JavaScript中的变量是无类型的,即可以存储任何一种数据类型的数据。在下一章中将介绍JavaScript的表达式与运算符。
本文标题:第2章 数据类型、常量与变量
链接地址:https://www.777doc.com/doc-3887433 .html