第2章 javascript数据类型

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.1JavaScript程序设计1.2第二章数据类型与变量1.32.1JavaScript中词法结构大小写敏感JavaScript核心语言存在大小写敏感的特点,也就是说JavaScript是一种区分大小写的计算机语言。在使用过程中,必须保持变量名称、函数名称以及关键字等标识符前后大小写一致。语句分隔符在JavaScript中使用分号(;)分隔语句。如果两个语句之间存在换行符的话,那么前一个语句可以省略语句分隔符。1.42.1JavaScript中词法结构保留字又称关键字。保留字一般都表示特定的含义,可以完成相应的功能。1.5有5种原始类型即Undefined、Null、Boolean、Number和String。typeof运算符typeof运算符有一个参数,即要检查的变量或值。对变量或值调用typeof运算符将返回下列值之一:undefined-如果变量是Undefined类型的boolean-如果变量是Boolean类型的number-如果变量是Number类型的string-如果变量是String类型的object-如果变量是一种引用类型或Null类型的注释:为什么typeof运算符对于null值会返回Object。这实际上是JavaScript最初实现中的一个错误,然后被ECMAScript沿用了。现在,null被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。2.2JS中的原始数据类型1.6如前所述,Undefined类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值是undefined。varoTemp;前面一行代码声明变量oTemp,没有初始值。该变量将被赋予值undefined,即undefined类型的字面量。可以用下面的代码段测试该变量的值是否等于undefined:varoTemp;alert(oTemp==undefined);这段代码将显示true,说明这两个值确实相等。还可以用typeof运算符显示该变量的值是undefined:varoTemp;alert(typeofoTemp);//输出undefined1、Undefined类型1.7提示:值undefined并不同于未定义的值。但是,typeof运算符并不真正区分这两种值。考虑下面的代码:varoTemp;alert(typeofoTemp);//输出undefinedalert(typeofoTemp2);//输出undefined前面的代码对两个变量输出的都是undefined,即使只有变量oTemp2从未被声明过。如果对oTemp2使用除typeof之外的其他运算符的话,会引起错误,因为其他运算符只能用于已声明的变量上。例如,下面的代码将引发错误:varoTemp;alert(oTemp2==undefined);1、Undefined类型1.8另一种只有一个值的类型是Null,它只有一个专用值null,即它的字面量。值undefined实际上是从值null派生来的,因此ECMAScript把它们定义为相等的。alert(null==undefined);//输出true“尽管这两个值相等,但它们的含义不同。undefined是声明了变量但未对其初始化时赋予该变量的值,null则用于表示尚未存在的对象(在讨论typeof运算符时,简单地介绍过这一点)。如果函数或方法要返回的是对象,那么找不到该对象时,返回的通常是null。2、Null类型1.9Boolean类型是ECMAScript中最常用的类型之一。它有两个值true和false(即两个Boolean字面量)。即使false不等于0,0也可以在必要时被转换成false,这样在Boolean语句中使用两者都是安全的。varbFound=true;varbLost=false;3、Boolean类型1.10ECMA-262中定义的最特殊的类型是Number类型。这种类型既可以表示32位的整数,还可以表示64为的浮点数。直接输入的(而不是从另一个变量访问的)任何数字都被看做Number类型的字面量。例如,下面的代码声明了存放整数值的变量,它的值由字面量86定义:variNum=86;4、Number类型1.11八进制数和十六进制数整数也可以被表示为八进制(以8为底)或十六进制(以16为底)的字面量。八进制字面量的首数字必须是0,其后的数字可以是任何八进制数字(0-7),如下面的代码所示:variNum=070;//070等于十进制的56要创建十六进制的字面量,首位数字必须为0,后面接字母x,然后是任意的十六进制数字(0到9和A到F)。这些字母可以是大写的,也可以是小写的。例如:variNum=0x1f;//0x1f等于十进制的31variNum=0xAB;//0xAB等于十进制的171提示:尽管所有整数都可以表示为八进制或十六进制的字面量,但所有数学运算返回的都是十进制结果。4、Number类型1.12浮点数要定义浮点值,必须包括小数点和小数点后的一位数字(例如,用1.0而不是1)。这被看作浮点数字面量。例如:varfNum=5.0;对于浮点字面量的有趣之处在于,用它进行计算前,真正存储的是字符串。科学计数法对于非常大或非常小的数,可以用科学计数法表示浮点数,可以把一个数表示为数字(包括十进制数字)加e(或E),后面加乘以10的倍数。例如:varfNum=5.618e7该符号表示的是数56180000。把科学计数法转化成计算式就可以得到该值:5.618x107。4、Number类型1.13NaNNaN,表示非数(NotaNumber)。NaN是个奇怪的特殊值。一般说来,这种情况发生在类型(String、Boolean等)转换失败时。例如,要把单词blue转换成数值就会失败,因为没有与之等价的数值。NaN不能用于算术计算。NaN的一个奇特之处在于,它与自身不相等,这意味着下面的代码将返回false:alert(NaN==NaN);//输出false出于这个原因,不推荐使用NaN值本身。函数isNaN()会做得相当好:alert(isNaN(blue));//输出truealert(isNaN(666));//输出false4、Number类型1.14String类型的独特之处在于,它是唯一没有固定大小的原始类型。可以用字符串存储0或更多的Unicode字符,有16位整数表示(Unicode是一种国际字符集)。5、String类型1.15JavaScript的数据类型从另外一个层面也可以这样看待,JS总共包含6中数据类型:简单数据有undefined,null,boolean(布尔值),number(数值)和string(字符串)五种。而复杂数据有一种,即object。JavaScript中的数据很简洁:1.16转义字符如何用一个字符串表达计算机中的一个目录呢?这个问题涉及到一个特殊的字符“\”,被称为转义字符,转义字符和其他字符混合使用被称为转义序列。某些转义序列可以表示特殊的含义,如\b,\n,\r等。2.2JS中的原始数据类型1.17如果转义序列没有特定的含义,那么转义字符“\”将被忽略,而显示原有的字符。如\JavaScript和JavaScript显示的效果是一样的。目录的正确写法:document.writeln(“C:\\programfile\\microsoftoffice”);HTML标记字符串只要将HTML标记作为字符串的一部分,放在恰当的位置即可,例如:document.writeln(H1Example/H1);2.2JS中的原始数据类型1.18ECMAScript的Boolean值、数字和字符串的原始值的有趣之处在于它们是伪对象,这意味着它们实际上具有属性和方法。例如,要获得字符串的长度,可以采用下面的代码:varsColor=red;alert(sColor.length);//输出32.3JavaScript类型转换1.193种主要的原始类型Boolean值、数字和字符串都有toString()方法,可以把它们的值转换成字符串。Boolean类型的toString()方法只是输出true或false,结果由变量的值决定:varbFound=false;alert(bFound.toString());//输出falseNumber类型的toString()方法比较特殊,它有两种模式,即默认模式和基模式。采用默认模式,toString()方法只是用相应的字符串输出数字值(无论是整数、浮点数还是科学计数法),如下所示:variNum1=10;variNum2=10.0;alert(iNum1.toString());//输出10alert(iNum2.toString());//输出102.3JavaScript类型转换1.20采用Number类型的toString()方法的基模式,可以用不同的基输出数字,例如二进制的基是2,八进制的基是8,十六进制的基是16。基只是要转换成的基数的另一种加法而已,它是toString()方法的参数:variNum=10;alert(iNum1.toString(2));//输出1010alert(iNum1.toString(8));//输出12alert(iNum1.toString(16));//输出A在前面的示例中,以3种不同的形式输出了数字10,即二进制形式、八进制形式和十六进制形式。HTML采用十六进制表示每种颜色,在HTML中处理数字时这种功能非常有用。注释:对数字调用toString(10)与调用toString()相同,它们返回的都是该数字的十进制形式。2.3JavaScript类型转换1.21转换成数字ECMAScript提供了两种把非数字的原始值转换成数字的方法,即parseInt()和parseFloat()。parseInt()在判断字符串是否是数字值前,parseInt()和parseFloat()都会仔细分析该字符串。parseInt()方法首先查看位置0处的字符,判断它是否是个有效数字;如果不是,该方法将返回NaN,不再继续执行其他操作。但如果该字符是有效数字,该方法将查看位置1处的字符,进行同样的测试。这一过程将持续到发现非有效数字的字符为止,此时parseInt()将把该字符之前的字符串转换成数字。例如,如果要把字符串12345red转换成整数,那么parseInt()将返回12345,因为当它检查到字符r时,就会停止检测过程。2.3JavaScript类型转换1.22一些示例如下:variNum1=parseInt(12345red);//返回12345variNum1=parseInt(0xA);//返回10variNum1=parseInt(56.9);//返回56variNum1=parseInt(red);//返回NaN2.3JavaScript类型转换1.23parseInt()方法还有基模式,可以把二进制、八进制、十六进制或其他任何进制的字符串转换成整数。基是由parseInt()方法的第二个参数指定的,所以要解析十六进制的值,需如下调用parseInt()方法:variNum1=parseInt(AF,16);//返回175当然,对二进制、八进制甚至十进制(默认模式),都可以这样调用parseInt()方法:variNum1=parseInt(10,2);//返回2variNum2=parseInt(10,8);//返回8variNum3=parseInt(10,10);//返回10如果十进制数包含前导0,那么最好采用基数10,这样才不会意外地得到八进制的值。例如:variNum1=parseInt(010);//返回8variNum2=parseInt(0

1 / 54
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功