![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=1739197847-fHRqfwRXTq9SnZBg4pSpFXFyMrEk7cY2-0-bde89b04308401643e2b20498be00edf)
JavaScript程序按照在HTML文件中出现的顺序逐行执行。如果需要在整个HTML文件中执行。最好将其放在HTML文件的<head>…</head>标签当中。某些代码,如函数体内的代码,不会被立即执行,只有当所在的函数被其他程序调用时,该代码才被执行。
3.1.2 区分大小写
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P47_165865.jpg?sign=1739197847-Vf5BcNQ0Njolpuf1GrvkhIx2e0w9baBU-0-a34d0ad75850650c20e750b947e9528d)
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=1739197847-3V6UZSK41AWj58Jt9cb02hyPMrOzyxji-0-f3172fd169c2faa11d680caae4cf0575)
在JavaScript语句当中,分号是可有可无的,这一点与Java语言不同,JavaScript并不要求每行必须以分号作为语句的结束标志。如果语句的结束处没有分号,JavaScript会自动将该代码的结尾作为语句的结尾。
例如,下面的两行代码书写方式都是正确的:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216040.jpg?sign=1739197847-OgwYFDazEelp5TCEcyYwDGFQxVMCcB3u-0-aad677da9aa37c90ac26cbf3f327f8a9)
提示:作为程序开发人员应养成良好的编程习惯,每条语句以分号作为结束标志以增强程序的可读性,也可避免一些非主流浏览器的不兼容。
另外,JavaScript会忽略多余的空格,用户可以向脚本添加空格来提高其可读性。下面的两行代码是等效的:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216042.jpg?sign=1739197847-rPsmnToiF8KSMYVJ45qxuqRTBlzME1CN-0-6275b56fd93afe162ae40eaa96ed6c31)
3.1.4 代码折行标准
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165931.jpg?sign=1739197847-zAETFD7QmguVjw66JhVSnrwhwgGKkm7d-0-ca362ad5110dddd8c9aab1b9a977a90b)
当一段代码比较长时,用户可以在文本字符串中使用反斜杠对代码行进行换行。下面的例子会正确地显示:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216044.jpg?sign=1739197847-kJ5p0qWniMGnIo0JbTcnDeeSLAd9ROAz-0-0cdd5ba9a4002da36ca0ebb5cafa7626)
不过,用户不能像这样折行:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216046.jpg?sign=1739197847-8lSeMR1gWLCL8HewGqqFNN420nVumpkX-0-092714d39dd4c8f9d4c9ec7cb3533146)
3.1.5 注释语句
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165932.jpg?sign=1739197847-7BJfUMi3CbbRvYGejmXCWcwvPVAmstlE-0-481bc0817793b50eca87a56ab78e6de6)
与C、C++、Java、PHP相同,JavaScript的注释分为两种,其中一种是单行注释,例如:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165928.jpg?sign=1739197847-zOARyHUMjMmpNHraCLKsMHkpw424oWUO-0-d9e0eaa293d40a09340ea64e5c167aea)
另一种是多行注释,例如:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216048.jpg?sign=1739197847-7c3454ePlbShiQ144U1P3lxZbdA0enzR-0-4d954d174a1977e672180309c83db289)
3.2 JavaScript的变量
变量是用来临时存储数值的容器。在程序中,变量存储的数值是可以变化的,变量占据一段内存,通过变量的名字可以调用内存中的信息。
3.2.1 变量的声明
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P49_165973.jpg?sign=1739197847-w73Tf1TxZDOtd0carXXPGPdbt11BrrrO-0-1f8ac61de634b82ebe07f8b75a12727b)
尽管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=1739197847-haR4oc7uDm4ftXDMjiLWKOQSG8Zehd4k-0-606d029559b70cbd7d610e73040ef9c4)
变量的作用范围又称为作用域,是指某变量在程序中的有效范围。根据作用域的不同,变量可划分为全局变量和局部变量。
- 全局变量:全局变量的作用域是全局性的。在整个JavaScript程序中,全局变量处处都存在。
- 局部变量:局部变量是函数内部声明的,只作用于函数内部,其作用域是局部性的;函数的参数也是局部性的,只在函数内部起作用。
【例3-1】(实例文件:ch03\Chap3.1.html)变量定义示例。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P49_216059.jpg?sign=1739197847-Ftltza7QIyvQ3G2hEIsBzyWZ1ea2XwKv-0-3d2048ab7b5b2966ca3b9477668dcbc9)
相关的代码示例请参考Chap3.1.html文件。在IE浏览器里面运行的结果如图3-1所示,从结果中可以看到同一变量名具有不同的运行结果。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166025.jpg?sign=1739197847-mGhbpfAdUfphpNIncdT9lb513ivXlSp3-0-cfab15ea2abe77be2f65fff63282a8cc)
图3-1 定义变量后的运行结果
3.2.3 变量的优先级
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166034.jpg?sign=1739197847-gsUKoQ8u1GQsuENlMQr9HsvnE7r8hH0w-0-abd8675817665f1d145ba95cba4e7aaf)
在函数内部,局部变量的优先级高于同名的全局变量。也就是说,如果存在与全局变量名称相同的局部变量,或者在函数内部声明了与全局变量同名的参数,则该全局变量将不再起作用。
【例3-2】(实例文件:ch03\Chap3.2.html)变量的优先级。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_216061.jpg?sign=1739197847-2hEv9pYTUk4WYlc0h6d5MA71m21MSiVM-0-fa85504f8a3cc737ec0e6fb6b836c9ef)
相关的代码示例请参考Chap3.2.html文件,在IE浏览器里面运行的结果如图3-2所示,从结果中可以看出输入的是“局部变量”。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166031.jpg?sign=1739197847-saW6KS4Y5PgQJ1MV0g7KQS6JCbBCNC0t-0-07ddb9552515fa5aea14cb94e3902b0a)
图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=1739197847-MgkKMrJ13TcAGZwAO7MlMcAFHNVutflz-0-1b8f35b158a75323e5e4f68a9645f29d)
相关的代码示例请参考Chap3.3.html文件,在IE浏览器里面运行的结果如图3-3所示。
单击“确定”按钮,结果如图3-4所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P51_166078.jpg?sign=1739197847-O0Dhef3v9fJkapjJh7qybYdkV1RRdcQW-0-3bf33e053ca7a423da229f91990bef25)
图3-3 运行结果
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P51_166079.jpg?sign=1739197847-fSz4RT5hYaHn3PTjpze5jGr6MHp9mneU-0-00dda84611354f5fbd326280913cdc67)
图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=1739197847-i2nnzXKpyWIa47a2EEeh0LR6oU4STp0t-0-6cd26d237610739ce76b5d60c62e9d7b)
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=1739197847-x0LyuRKOO9umOguXdoPVpltIF72z3CMz-0-c5ce8c28935886d80cf57829761fcf38)
相关的代码示例请参考Chap3.4.html文件,在IE浏览器里面运行的结果如图3-5所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166134.jpg?sign=1739197847-zf4fk24lB3krTwGQ2zzMionpMkzu9Wrg-0-32fbc07f2345a7a34ae0675fc419dc2e)
图3-5 使用Undefined运行结果
3.3.2 空类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166166.jpg?sign=1739197847-zdR9R7uUnwN2mVCW2h1Lv2ufaXEKvvOa-0-3bc180b904fed4fbaab0ea5ac02b2f1f)
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=1739197847-KNqxpCuNCvLPXG3xIW7t5F6wr4SvaWxs-0-12afd68e24323c07f7f44efd47ca364c)
相关的代码示例请参考Chap3.5.html文件,在IE浏览器里面运行的结果如图3-6所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166127.jpg?sign=1739197847-V6aflegysw5lwK2leH6Z8KqwUwbKoTv1-0-112e83018e071aa2700ab1acf3a236e0)
图3-6 使用空类型运行结果
3.3.3 布尔型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166106.jpg?sign=1739197847-5uFjM8anM414q0zihPnfeSw9GI7YCZs8-0-ddfbe4fd7deca289153d4f13dea91261)
数值数据类型和字符串数据类型可能的值都无穷多,但布尔型数据类型只有两个值,这两个合法的值分别由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=1739197847-G0tgWLHOYrzm6Lju95vIDkS2wk7lhLCv-0-195bfe07350c0b9c19678a4725f22087)
相关的代码示例请参考Chap3.6.html文件,在IE浏览器里面运行的结果如图3-7所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166224.jpg?sign=1739197847-yBbC43tEtdTtxQWg9jVn1lEMVBrebPHy-0-044d68ab176e413b5cbb9cd929666524)
图3-7 使用布尔型运行结果
3.3.4 字符串
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166237.jpg?sign=1739197847-NHWcccymthBx35GfOxI1YOUvI84Q8kF9-0-9723a0b47b14386d15f1fac0302ba3f9)
字符串由零个或者多个字符构成,字符可以包括字母、数字、标点符号和空格、字符串必须放在单引号或者双引号里。JavaScript字符串定义方法如下。
方法一:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166233.jpg?sign=1739197847-3XENfLthLgI8kQVeNH3Lg98Kyx3NOFyS-0-aca173fd4dc94178d563d3cc87a0cc28)
方法二:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166235.jpg?sign=1739197847-VmRvdUK4B9d4tA4HMTgOc72zdlDVnG0V-0-1f826c05b512a93e1a88440937881486)
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=1739197847-TzzCn30BpiWyPNxFyDJxGmfDZflsvTma-0-3d2ea901ce9477d33b84aa776af42ee5)
注意,虽然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=1739197847-1Slgo441p3PoYWlY85USATiXDzS9VuCS-0-347e4211eef8f6d36d386d72e23d715a)
相关的代码示例请参考Chap3.7.html文件。在IE浏览器里面运行的结果如图3-8所示,从结果中可以看到字符串连接运行的结果。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P55_166464.jpg?sign=1739197847-t8UszO3dVdeM2RjV06R44bu8QhOLR90e-0-2d7f7021524e5d764a948c84f1a299ec)
图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=1739197847-BSiH3GT3hnUIpwFb8ciDpHVorpX1R1nH-0-361847a1e43c18fde656ce1e1b6dfff0)
相关的示例请参考Chap3.8.html文件。在IE浏览器里面运行的结果如图3-9所示,从结果中可以看到字符串的长度已经被计算出来。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P55_166472.jpg?sign=1739197847-Grzh9mAXBBblC6InQpDlJmsRmf5WwL0E-0-1bb5976034f4d5cc5821fae417b9dc6b)
图3-9 计算字符串的长度
根据字符串的length属性,可以对其进行许多操作,例如,可以获取字符串s的最后一个字符:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216087.jpg?sign=1739197847-mkE9yWImFXqnLdNv9vflcEhSkPPvqJt7-0-f8449d28e6d3e360521ab64f7af52f17)
因为length是一个字符串的长度,即字符串的个数,而字符串中的首字符是从0开始的,所以最后一个字符在字符串中的位置为length-1。
2.字符串的大小写转换
使用字符串对象中的toLocaleLowerCase()、toLocaleUpperCase()、toLowerCase()、toUpperCase()方法可以转换字符串的大小写。这4种方法的语法格式如下:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216089.jpg?sign=1739197847-PrBw5zPTJKZNtrxIEshXO1FwNG2jt4x7-0-9bc7324d8323847b3068e59dd2b424ef)
【例3-9】(实例文件:ch03\Chap3.9.html)字符串大小转换。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216091.jpg?sign=1739197847-899Y72xHDwhAjLIHFmXh8Bb85aZ2vKSe-0-a81657373df0ca6362d0cd1f478799c1)
相关的代码示例请参考Chap3.9.html文件,在IE浏览器里面运行的结果如图3-10所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_166539.jpg?sign=1739197847-gXGsgO6VUyK4aZDkadNjBq3dQzDWXPsY-0-e4c17d8583a1d7a228def2e90c040229)
图3-10 字符串大小转换
3.3.5 数值类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_166548.jpg?sign=1739197847-vX5InAVtvBGDBMcaTTdfDfsOL1LofKxC-0-fa7b3f8764815319e9d107a6372ff012)
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=1739197847-Domu43BDTsJLxx8oFpM6z3BIa7B7CnOl-0-da78755dbea11951d0794b29e06dd1f5)
相关的代码示例请参考Chap3.10.html文件,在IE浏览器里面运行的结果如图3-11所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P57_166610.jpg?sign=1739197847-ddMra2Oktl9H7pMAB0NCY4Vj9L1OkZtl-0-e4f2782715b4053b99af4c1643a1fe05)
图3-11 输出数值
提示:JavaScript中只有一种数字类型,而且内部使用的是64位浮点型,等同于C#或Java中的double类型。
3.3.6 对象类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P57_166620.jpg?sign=1739197847-wCdis7oqMj5IbIs1Nml0hBq12CINJYhF-0-13d4a7e576d6940e1f8d1b25b95af947)
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=1739197847-DWT92wFc3eUAiuydsTh278mt2nPkJnZx-0-289a37ac32e6d9bd0b2aa4e2bd3a9e23)
相关的代码示例请参考Chap3.11.html文件,在IE浏览器里面运行的结果如图3-12所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P58_166637.jpg?sign=1739197847-VLFqJGmKvGvJTMicM8nfhB1FfiPfBz6H-0-5a3533e1918dc32706d3fbcf9955bdd0)
图3-12 Object数据类型的使用
3.4 JavaScript的关键字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P58_166878.jpg?sign=1739197847-5VD5qTyNNZpwIblufYPiFXJ2lVyJvnMj-0-fa8d813e0d78718523e5024f36059a0d)
关键字标识了JavaScript语句的开头或结尾。根据规定,关键字是保留的,不能用作变量名或函数名。表3-2所示为JavaScript中的关键字。
表3-2 JavaScript中的关键字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-T58_166753.jpg?sign=1739197847-h9GX2GnSyByNr9InxMNdgMo54mppMAuA-0-45119a2c80805c89d615330fc1d515bb)
提示:JavaScript中的关键字是不能作为变量名和函数名使用的。
3.5 JavaScript的保留字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_000.jpg?sign=1739197847-YBo3jHbZz2OnBQ5I71CbSlMp2Mj2ygLP-0-fb867726712201888702f245014d13b3)
保留字在某种意义上是为将来的关键字而保留的单词。因此,保留字不能被用作变量名或函数名。表3-3所示为JavaScript中的保留字。
表3-3 JavaScript中的保留字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-T58_166877.jpg?sign=1739197847-WHkp6O4fSquZcnciRICNvkBBcVnZqrLd-0-2bcdfab2d74422879c71b699d6139f4a)
提示:如果将保留字用作变量名或函数名,那么除非将来的浏览器实现了该保留字,否则很可能收不到任何错误消息。当浏览器将其实现后,该单词将被看作关键字,如此将出现关键字错误。
3.6 典型案例——九九乘法表
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_166958.jpg?sign=1739197847-TGoUnqK7z4ilL46iEetKdQzsumQOrbKh-0-ea44bae5d9443ef4547122e258075795)
下面是一个JavaScript综合实例——九九乘法表。
【例3-12】(实例文件:ch03\Chap3.12.html)九九乘法表。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_216105.jpg?sign=1739197847-EZrkSBqjy3cvX9SRV17A6WKeUGuAQtQC-0-00ea11c2263062425d809c5cc2e2eb58)
相关的示例请参考Chap3.12.html文件,在IE浏览器里面运行的结果如图3-13所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_166951.jpg?sign=1739197847-wk3hoWxDoDboNlp5j1ePYGuAXetHXcVZ-0-ecaa423d12cad4f69321c73c6601bd88)
图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循环的一部分,这样可使得循环变量的声明成为循环语法自身的一部分,使用起来较为方便。