![JavaScript 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/691/26793691/b_26793691.jpg)
第3章
感受JavaScript精彩——基础入门
◎本章教学微视频:17个 32分钟
学习指引
无论是传统编程语言,还是脚本语言,都有数据类型、常量和变量、注释语句等基本元素,这些基本元素构成了编程基础。本章将详细介绍JavaScript的基础入门知识,主要内容包括JavaScript的语法、变量、数据类型、关键字与保留字。
重点导读
- 掌握JavaScript的语法知识。
- 掌握JavaScript的变量知识。
- 掌握JavaScript的数据类型。
- 掌握JavaScript的关键字。
- 掌握JavaScript的保留字。
3.1 JavaScript的语法
与C、Java及其他语言一样,JavaScript也有自己的语法,但只要熟悉其他语言就会发现JavaScript的语法也是非常简单的。
3.1.1 代码执行顺序
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P47_165864.jpg?sign=1739263755-oKRQdL5Zd22NJpyx9jrhgb2ttZRe4rMJ-0-84a5e6854f177d0810594c38acd48a2d)
JavaScript程序按照在HTML文件中出现的顺序逐行执行。如果需要在整个HTML文件中执行。最好将其放在HTML文件的<head>…</head>标签当中。某些代码,如函数体内的代码,不会被立即执行,只有当所在的函数被其他程序调用时,该代码才被执行。
3.1.2 区分大小写
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P47_165865.jpg?sign=1739263755-WtVh5Cu0hhCys7Z2tEVUDhihkULf27Gg-0-55020c91530dbe1999bc24f5149edba3)
JavaScript对字母大小写敏感,也就是说在输入语言的关键字、函数、变量以及其他标识符时,一定要严格区分字母的大小写。例如,变量username与变量userName是两个不同的变量。
提示:HTML不区分大小写。由于JavaScript与HTML紧密相关,这一点很容易混淆,许多JavaScript对象和属性都与其代表的HTML标签或属性同名,在HTML中,这些名称可以以任意的大小写方式输入而不会引起混乱,但在JavaScript中,这些名称通常都是小写的。例如,在HTML中的事件处理器属性ONCLICK通常被声明为onClick或Onclick,而在JavaScript中只能使用onclick。
3.1.3 分号与空格
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165930.jpg?sign=1739263755-zeBDhNn6DOB0giMLvkwjXU3tXkvG4Xnw-0-d3e2dd4ec0d90f27b9e6c628bafb0122)
在JavaScript语句当中,分号是可有可无的,这一点与Java语言不同,JavaScript并不要求每行必须以分号作为语句的结束标志。如果语句的结束处没有分号,JavaScript会自动将该代码的结尾作为语句的结尾。
例如,下面的两行代码书写方式都是正确的:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216040.jpg?sign=1739263755-zjUTsRNHtZCeJKV0obRM3U1XFoOstzVA-0-bb9cf645fb1b59ea67c6ec3aa93675f9)
提示:作为程序开发人员应养成良好的编程习惯,每条语句以分号作为结束标志以增强程序的可读性,也可避免一些非主流浏览器的不兼容。
另外,JavaScript会忽略多余的空格,用户可以向脚本添加空格来提高其可读性。下面的两行代码是等效的:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216042.jpg?sign=1739263755-Xkay3BMG57Wpm5qlpNfvOR59PsKlWu7H-0-be9b7145a787734be68aa6150c8dab0c)
3.1.4 代码折行标准
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165931.jpg?sign=1739263755-oc9nlhrDYTdRFdl8pm5OvUtfIRm9NjE1-0-76f2a71e0ed1c0c432dc8d24486894ce)
当一段代码比较长时,用户可以在文本字符串中使用反斜杠对代码行进行换行。下面的例子会正确地显示:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216044.jpg?sign=1739263755-0KWS3ArfKRs4X63Y5qT83TDTV1n424oV-0-8b9b0b84e0b6710003a412a629c2ef2f)
不过,用户不能像这样折行:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216046.jpg?sign=1739263755-kYgqficzxrYZhtzhxIDAVwBhTSrJtaLo-0-7a4f20c4e59c1c5612bcabd60c2e40df)
3.1.5 注释语句
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165932.jpg?sign=1739263755-sNvWwbUnr408q0yuQfgp9fCHz72sY5RF-0-0cddc46e1dce05a23686e244dd4e78a7)
与C、C++、Java、PHP相同,JavaScript的注释分为两种,其中一种是单行注释,例如:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165928.jpg?sign=1739263755-0yTay9hPyS0qPCSQxG9CsZlAvtIjm9ZU-0-07afd908a3bcc27eb97270dc8286c9df)
另一种是多行注释,例如:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216048.jpg?sign=1739263755-aG8GKxbJzaQKOK0HW5P5c9QH4FpL233I-0-56f8798ab40f3f5950a02d097c140077)
3.2 JavaScript的变量
变量是用来临时存储数值的容器。在程序中,变量存储的数值是可以变化的,变量占据一段内存,通过变量的名字可以调用内存中的信息。
3.2.1 变量的声明
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P49_165973.jpg?sign=1739263755-baAieJzD6qT32TMOmE6YkwYSc6j3O25L-0-79f78b993f450cc7c633b2d50c0153df)
尽管JavaScript是一种弱类型的脚本语言,变量可以在不声明的情况下直接使用,但在实际使用过程中,最好还是先使用var关键字对变量进行声明。声明变量具有如下几种规则。
- 可以使用一个关键字var同时声明多个变量,如语句“var x,y;”就同时声明了x和y两个变量。
- 可以在声明变量的同时对其赋值(称为初始化),例如“var president = "henan";var x=5,y=12;”声明了president、x和y3个变量,并分别对其进行了初始化。如果出现重复声明的变量,且该变量已有一个初始值,则此时的声明相当于对变量重新赋值。
- 如果只是声明了变量,并未对其赋值,其值默认为undefined。
- var语句可以用作for循环和for…in循环的一部分,这样可以使得循环变量的声明成为循环语法自身的一部分,使用起来较为方便。
当给一个尚未声明的变量赋值时,JavaScript会自动用该变量名创建一个全局变量。在一个函数内部,通常创建的只是一个仅在函数内部起作用的局部变量,而不是一个全局变量。要确保创建的是一个局部变量,而不仅仅是赋值给一个已经存在的局部变量,就必须使用var语句进行变量声明。
注意:声明JavaScript的变量时,不指定变量的数据类型。一个变量一旦声明,可以存放任何数据类型的信息,JavaScript会根据存放信息的类型,自动为变量分配合适的数据类型。
3.2.2 变量的作用域
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P49_165974.jpg?sign=1739263755-rdTVTOEDeEKXvRre2exnH5w1A9pDJmM2-0-1a944dabee828080d151e91aa9e6c6ea)
变量的作用范围又称为作用域,是指某变量在程序中的有效范围。根据作用域的不同,变量可划分为全局变量和局部变量。
- 全局变量:全局变量的作用域是全局性的。在整个JavaScript程序中,全局变量处处都存在。
- 局部变量:局部变量是函数内部声明的,只作用于函数内部,其作用域是局部性的;函数的参数也是局部性的,只在函数内部起作用。
【例3-1】(实例文件:ch03\Chap3.1.html)变量定义示例。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P49_216059.jpg?sign=1739263755-evqIujr0c5gkKzrp2Zx6Ph7CNQXA6iob-0-ca01bff006e51460fab8a0113570fb27)
相关的代码示例请参考Chap3.1.html文件。在IE浏览器里面运行的结果如图3-1所示,从结果中可以看到同一变量名具有不同的运行结果。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166025.jpg?sign=1739263755-VE5HYg10p5g0jtcbSG5QgHfFMeqdxTkO-0-ca34ed816a748102cd4529b725d9d4a3)
图3-1 定义变量后的运行结果
3.2.3 变量的优先级
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166034.jpg?sign=1739263755-5Y30ds8BJsQAf9oz687s1GqOdtbcds9D-0-6a21307a3230968a06dfb8ffdd950c7e)
在函数内部,局部变量的优先级高于同名的全局变量。也就是说,如果存在与全局变量名称相同的局部变量,或者在函数内部声明了与全局变量同名的参数,则该全局变量将不再起作用。
【例3-2】(实例文件:ch03\Chap3.2.html)变量的优先级。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_216061.jpg?sign=1739263755-kBTPdjGvP0ngMKlHyvCIinrc4W1AH2fQ-0-b32dd94bda5736b48174ec2b9fd3b300)
相关的代码示例请参考Chap3.2.html文件,在IE浏览器里面运行的结果如图3-2所示,从结果中可以看出输入的是“局部变量”。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166031.jpg?sign=1739263755-ehB5Vf0zjLsJgoqAolvkT6A9w2t1mL2I-0-dbecf814216d655fed45b3f98665c626)
图3-2 变量的优先级
注意:虽然在全局作用域中可以不使用var声明变量,但声明局部变量时,一定要使用var语句。
JavaScript没有块级作用域,函数中的所有变量无论是在哪里声明的,在整个函数中都有意义。
【例3-3】(实例文件:ch03\Chap3.3.html)JavaScript无块级作用域。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P51_216064.jpg?sign=1739263755-cicCsn32wOx5quSFVpnXL2OEtVomAfev-0-de77d6197b5956593bb33638e8347958)
相关的代码示例请参考Chap3.3.html文件,在IE浏览器里面运行的结果如图3-3所示。
单击“确定”按钮,结果如图3-4所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P51_166078.jpg?sign=1739263755-h0giXA7rqzxBIPvdWVcw2IVthDuH9Vwo-0-d363482026887189dedd4cfd72152d25)
图3-3 运行结果
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P51_166079.jpg?sign=1739263755-vR5NXviU637MRQGMxrYEdXS18rbIpN6v-0-0cee1362bbfba7af445c5a73e01df04d)
图3-4 局部变量
在本例中,用户可能认为因为声明局部变量的var语句还没有执行而调用全局变量scope,但由于无块级作用域的限制,局部变量在整个函数体内是有定义的。这就意味着在整个函数体中都隐藏了同名的全局变量,因此,输出的并不是“全局变量”。虽然局部变量在整个函数体是都是有定义的,但在执行var语句之前不会被初始化。
3.3 JavaScript的数据类型
JavaScript中共有9种数据类型,分别是未定义(Undefined)、空(Null)、布尔型(Boolean)、字符串(String)、数值(Number)、对象(Object)、引用(Reference)、列表(List)和完成(Completion)。其中,后3种类型仅仅作为JavaScript运行时中间结果的数据类型,因此不能在代码中使用,下面讲解常用的数据类型。
3.3.1 未定义类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P51_166086.jpg?sign=1739263755-dq5wvIvq0C2GXr0YOD5FDlFP29G1ePxC-0-779a7c1ebff5fec02af38b65a22d495e)
Undefined是未定义类型的变量,表示变量还没有赋值,如“var a;”,或者赋予一个不存在的属性值,如var a=String.notProperty。
此外,JavaScript中有一种特殊类型的数字常量NaN,表示“非数字”,当在程序中由于某种原因发生计算错误后,将产生一个没有意义的数字,此时JavaScript返回的数字值就是NaN。
【例3-4】(实例文件:ch03\Chap3.4.html)使用未定义类型。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_216070.jpg?sign=1739263755-hkKSV7c1bcW4BmytJXETJtuOJv2i7SXd-0-ae2e8dcd28599c46351e6fa600fdbb76)
相关的代码示例请参考Chap3.4.html文件,在IE浏览器里面运行的结果如图3-5所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166134.jpg?sign=1739263755-qg7k2i6HRZFEn9ZnwwCcJjUHcjSwl8Kz-0-18da0a84ef5cf0e1ce143559aef817d5)
图3-5 使用Undefined运行结果
3.3.2 空类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166166.jpg?sign=1739263755-hBp8zmT2jDm0lQvC0CtZtf02oiABIlVD-0-598cf67fb1aadf4a6489f3da21b85a10)
JavaScript中的关键字null是一个特殊的值,表示空值,用于定义空的或不存在的引用。不过,null不等同于空的字符串或0。由此可见,null与undefined的区别是:null表示一个变量被赋予了一个空值,而undefined则表示该变量还未被赋值。
【例3-5】(实例文件:ch03\Chap3.5.html)使用null。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_216073.jpg?sign=1739263755-upq1mXvbCuc9dpimm7U34qlpLdpoC85n-0-3b8da4d8345d4f36d764f487ff72aadd)
相关的代码示例请参考Chap3.5.html文件,在IE浏览器里面运行的结果如图3-6所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166127.jpg?sign=1739263755-Gweu6yOANSUrzrQCgnbZJMZ8EbYhetI1-0-9812674bbc19939a7f02fa9d4b9890e0)
图3-6 使用空类型运行结果
3.3.3 布尔型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166106.jpg?sign=1739263755-vN14R9JO9NAByqMEzeQlIAd1Vr9Q0HDR-0-bfdff5c1e15c6cb62d729442c37c7d34)
数值数据类型和字符串数据类型可能的值都无穷多,但布尔型数据类型只有两个值,这两个合法的值分别由true和false表示。一个布尔值代表的是一个“真值”,它说明了某个事物是真还是假。通常,我们使用1表示真,0表示假。布尔值通常是在JavaScript程序中比较所得的结果。
布尔类型的toString()方法只是输出true或false,结果由变量的值决定,例如:
【例3-6】(实例文件:ch03\Chap3.6.html)使用布尔类型。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_216075.jpg?sign=1739263755-EQXVW9UmtUAOonExliL10FRvAfc3H4DL-0-9fc357b6ea8a3aab55bab2242f97c439)
相关的代码示例请参考Chap3.6.html文件,在IE浏览器里面运行的结果如图3-7所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166224.jpg?sign=1739263755-LFqqIsgK3fmJ2zEVfTmEg25HEVMjg4RS-0-6ce83816935113300075d81281ccb4ce)
图3-7 使用布尔型运行结果
3.3.4 字符串
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166237.jpg?sign=1739263755-LHOdeps8taxuMV4QG6NwGsaA5rEzG3nx-0-6f5ad8c45a2fdb41c1d72428f54c0e4c)
字符串由零个或者多个字符构成,字符可以包括字母、数字、标点符号和空格、字符串必须放在单引号或者双引号里。JavaScript字符串定义方法如下。
方法一:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166233.jpg?sign=1739263755-RzpZGHoMz143V9E5FEaAiQOzxSdXbYTH-0-8c24e14c7ab1d0b5680627def9d5f462)
方法二:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166235.jpg?sign=1739263755-6yGfJinp6u0Dqln1LEy1zK03TgM3T0Zx-0-3556632911d36cc6204cbec184ef8c8c)
JavaScript字符串使用的注意事项如下。
- 字符串类型可以表示一串字符,如“www.haut.edu.cn”、'中国'。
- 字符串类型应使用双引号(")或单引号(')引起来。
在写JavaScript脚本时,可能会要在HTML文档中显示或使用某些特殊字符(如引号或斜线),例如<img src="image5.jpg">,但是前面提过,声明一个字符串时,前后必须以引号括起来。如此一来,字符串当中引号可能会和标示字符串的引号搞混了,此时就要使用转义字符(Escape Character)。
JavaScript使用8种转义字符,这些字符都是以一个反斜线(\)开始。当JavaScript的解释器(Interpreter)看到反斜线时,就会特别注意表现出程序员所要表达的意思。
表3-1列出了JavaScript的转义序列以及它们所代表的字符。其中有两个转义序列是通用的,通过把Latin-1或Unicode字符编码表示为十六进制数,它们可以表示任意字符。例如,转义序列\xA9表示的是版权符号,它采用十六进制数A9表示Latin-1编码。同样地,\u表示的是由4位十六进制数指定的任意Unicode字符,如\u03c0表示的是字符π(圆周率)。
表3-1 JavaScript的转义序列以及它们所代表的字符
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-T54_216078.jpg?sign=1739263755-BOi9BqjRK5rllwgtVjWqC7mNAjpg645Z-0-9a3765e81764ec2facb6fdc2d22ff815)
注意,虽然ECMAScript v1标准要求使用Unicode字符转义,但是JavaScript 1.3之前的版本通常不支持转义符。有些JavaScript版本还允许用反斜线符号后加3位八进制数字来表示Latin-1字符,但是ECMAScript v3标准不支持这种转义序列,所以不应该再使用它们。
1.字符串的使用
JavaScript的内部特性之一就是能够连接字符串。如果将加号(+)运算符用于数字,那就是把两个数字相加。但是,如果将它作用于字符串,它就会把这两个字符串连接起来,将第二个字符串连接在第一个字符串之后,例如:
【例3-7】(实例文件:ch03\Chap3.7.html)连接字符串示例。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P54_216082.jpg?sign=1739263755-JdUhStsG2fEkqslMj7LrNEtlwxehASq8-0-1f5109084032a3da1ed1b479cc90fe59)
相关的代码示例请参考Chap3.7.html文件。在IE浏览器里面运行的结果如图3-8所示,从结果中可以看到字符串连接运行的结果。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P55_166464.jpg?sign=1739263755-16yhjFo6CTd8nbm1Fr8Zbk8mPBd8ZEgu-0-a693f481fd13d62b0591ad3dd63e06ff)
图3-8 字符串连接运行结果
如果想要确定一个字符串的长度(它包含字符的个数),用户就可以使用字符串的length属性,如果变量s包含一个字符串,可以使用如下方法访问它的长度:s.length。
【例3-8】(实例文件:ch03\Chap3.8.html)获取字符串长度。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P55_216085.jpg?sign=1739263755-Eej5NmbSX9RmZvBOhsDcDUF4mvhHNt7R-0-8797fe4a5ea5d2ed97a55886bba2e818)
相关的示例请参考Chap3.8.html文件。在IE浏览器里面运行的结果如图3-9所示,从结果中可以看到字符串的长度已经被计算出来。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P55_166472.jpg?sign=1739263755-4sVIzqAubctCDtqxMpVAjvDaA9ulK4Jm-0-b667ff62a22d2d514ccab42533ee3d11)
图3-9 计算字符串的长度
根据字符串的length属性,可以对其进行许多操作,例如,可以获取字符串s的最后一个字符:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216087.jpg?sign=1739263755-teGnhKDx2MrYrYDAn0EybAKGBtyJrwA7-0-646116dc20f53f7cc92512d19322e2bd)
因为length是一个字符串的长度,即字符串的个数,而字符串中的首字符是从0开始的,所以最后一个字符在字符串中的位置为length-1。
2.字符串的大小写转换
使用字符串对象中的toLocaleLowerCase()、toLocaleUpperCase()、toLowerCase()、toUpperCase()方法可以转换字符串的大小写。这4种方法的语法格式如下:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216089.jpg?sign=1739263755-N77zSRccC2AuDsn8NU7CgL195u7ofzfl-0-f40b12c89eb19dbe708ecbba5bd59ad0)
【例3-9】(实例文件:ch03\Chap3.9.html)字符串大小转换。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216091.jpg?sign=1739263755-aPbszpfDR8Fel6pGXoYNT8vD7rC4OWwn-0-b48cab7b2db392b6ac64450b36602a38)
相关的代码示例请参考Chap3.9.html文件,在IE浏览器里面运行的结果如图3-10所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_166539.jpg?sign=1739263755-kPz5tU1TTumqU3LnvjnJOOne6VcbfHcb-0-1030ed7329ec8988eddf6e6e6656cf4e)
图3-10 字符串大小转换
3.3.5 数值类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_166548.jpg?sign=1739263755-7MgNWpeRcVXD4o8B9ZKOEPAhNStrCQym-0-6dd66cc69094a88403d6805823c40bf0)
JavaScript的数值类型表示一个数字,如5、12、-5、2e5等。在JavaScript中,数值类型有正数、负数、指数等。
【例3-10】(实例文件:ch03\Chap310.html)输出数值。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216093.jpg?sign=1739263755-UppNVujKmk6GDxIVnNoOyDqFnPtIIQzq-0-eed332fcae05147461f884f9b84995d2)
相关的代码示例请参考Chap3.10.html文件,在IE浏览器里面运行的结果如图3-11所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P57_166610.jpg?sign=1739263755-zf8tf24KA0ujLWPezVjnAzywTaz0Y4fA-0-e88c90a50e658f632234bac7d1f48eb3)
图3-11 输出数值
提示:JavaScript中只有一种数字类型,而且内部使用的是64位浮点型,等同于C#或Java中的double类型。
3.3.6 对象类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P57_166620.jpg?sign=1739263755-10WRrfD1yS8XZxbFSxfQ5AdLP8LyXiqI-0-6702b330ef99a81e71d58a72d76e6de4)
Object是对象类型,该数据类型中包括Object、Function、String、Number、Boolean、Array、RegExp、Date、 Global、Math、Error,以及宿主环境提供的Object类型。
【例3-11】(实例文件:ch03\Chap3.11.html)Object数据类型的使用。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P57_216096.jpg?sign=1739263755-guGUtWLZTnDPERO66lXNlFPJGCpUQgJJ-0-82d9865d76fe1930116edb76b2c80133)
相关的代码示例请参考Chap3.11.html文件,在IE浏览器里面运行的结果如图3-12所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P58_166637.jpg?sign=1739263755-kudo3PMt6TVCYDiOaBFpw5kUUu4epOa4-0-79d4e8be7eb000b6a6a1ec71506dd74c)
图3-12 Object数据类型的使用
3.4 JavaScript的关键字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P58_166878.jpg?sign=1739263755-Hc3hPwmAEN7JpMvFKSiwTvxjN3gJZrk8-0-ed598a1116bdb1ae646d775cfdd7d421)
关键字标识了JavaScript语句的开头或结尾。根据规定,关键字是保留的,不能用作变量名或函数名。表3-2所示为JavaScript中的关键字。
表3-2 JavaScript中的关键字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-T58_166753.jpg?sign=1739263755-OhK6hcKMmHwVBnphDX2D844nTe7V1mGb-0-07039782d5feaf08acca010ba1b44d80)
提示:JavaScript中的关键字是不能作为变量名和函数名使用的。
3.5 JavaScript的保留字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_000.jpg?sign=1739263755-bNleqE02nAdRKi6Bnflkd0KyTyiTdmiN-0-a506dd90decca61e6fc340b3f21a38bf)
保留字在某种意义上是为将来的关键字而保留的单词。因此,保留字不能被用作变量名或函数名。表3-3所示为JavaScript中的保留字。
表3-3 JavaScript中的保留字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-T58_166877.jpg?sign=1739263755-29daHnONWbvpwPh4RBmMblhwl9TDnuzO-0-44c3db429afc6e6123605df2422a6067)
提示:如果将保留字用作变量名或函数名,那么除非将来的浏览器实现了该保留字,否则很可能收不到任何错误消息。当浏览器将其实现后,该单词将被看作关键字,如此将出现关键字错误。
3.6 典型案例——九九乘法表
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_166958.jpg?sign=1739263755-qFC4HtqtmTmOQfJfPJK83ICcatcYEmUV-0-ee9dcfa702c8e9b12ce4f6d7ed02ba43)
下面是一个JavaScript综合实例——九九乘法表。
【例3-12】(实例文件:ch03\Chap3.12.html)九九乘法表。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_216105.jpg?sign=1739263755-XVC3ey83dfSBz8ZLm0YVy4rOeBSc7odP-0-a3b03dc6e5c34d7b0c61772a440a4ee1)
相关的示例请参考Chap3.12.html文件,在IE浏览器里面运行的结果如图3-13所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_166951.jpg?sign=1739263755-14O00Sv9jhjbj3sWDnVQd1kb71Hqanmc-0-59ca684891e0801b6f9bcccc5e681a61)
图3-13 九九乘法表
3.7 就业面试技巧与解析
3.7.1 面试技巧与解析(一)
面试官:你知道变量名有哪些命名规则吗?
应聘者:就我个人理解,变量命名规则有以下几种规则。
(1)变量名以字母、下画线或美元符号($)开头。例如,txtName与_txtName都是合法的变量名,而1txtName和&txtName都是非法的变量名。
(2)变量名只能由字母、数字、下画线和美元符号($)组成,其中不能包含标点与运算符,不能用汉字做变量名。例如,txt%Name、名称文本、txt-Name都是非法变量名。
(3)不能用JavaScript保留字做变量名。例如,var、enum、const都是非法变量名。
(4)JavaScript对大小写敏感。例如,变量txtName与txtname是两个不同的变量,两个变量不能混用。
3.7.2 面试技巧与解析(二)
面试官:你知道声明变量具有哪几种规则吗?
应聘者:就我个人理解,声明变量有以下几种规则。
(1)可以使用一个关键字var同时声明多个变量,如语句“var x,y;”就同时声明了x和y两个变量。
(2)可以在声明变量的同时对其赋值(称为初始化),例如“var president = "henan";var x=5,y=12;”声明了president、x和y3个变量,并分别对其进行了初始化。
(3)如果出现重复声明的变量,且该变量已有一个初始值,则此时的声明相当于对变量重新赋值。
(4)如果只是声明了变量,并未对其赋值,其值默认为undefined。
(5)var语句可以用作for循环和for…in循环的一部分,这样可使得循环变量的声明成为循环语法自身的一部分,使用起来较为方便。