![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=1738886799-4sUas2X9N0xq71x23uIC5txXbq8O8veN-0-9728098501ac2d7ef037985f8dd8df4c)
JavaScript程序按照在HTML文件中出现的顺序逐行执行。如果需要在整个HTML文件中执行。最好将其放在HTML文件的<head>…</head>标签当中。某些代码,如函数体内的代码,不会被立即执行,只有当所在的函数被其他程序调用时,该代码才被执行。
3.1.2 区分大小写
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P47_165865.jpg?sign=1738886799-cgjWDWX6itW83kuqagP7MQYGw31xB3ZM-0-072d4533908bae785f4696c88d86d33e)
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=1738886799-WCiDtt8c6oq9wHiYjdUnU0M8xCTG5TSO-0-e5fa086ece3168a3a86f70bdf2323c7e)
在JavaScript语句当中,分号是可有可无的,这一点与Java语言不同,JavaScript并不要求每行必须以分号作为语句的结束标志。如果语句的结束处没有分号,JavaScript会自动将该代码的结尾作为语句的结尾。
例如,下面的两行代码书写方式都是正确的:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216040.jpg?sign=1738886799-GQaG60KFJBQWPWawjFpksZWv9KCdPFrs-0-3a1be7b647a6fe14ed662c2d336da780)
提示:作为程序开发人员应养成良好的编程习惯,每条语句以分号作为结束标志以增强程序的可读性,也可避免一些非主流浏览器的不兼容。
另外,JavaScript会忽略多余的空格,用户可以向脚本添加空格来提高其可读性。下面的两行代码是等效的:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216042.jpg?sign=1738886799-Fc51tv83ROe9Eq9L8lbIu53gZJfO6T7U-0-9f46cf2e2d3ce5c85db5e8992a239aca)
3.1.4 代码折行标准
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165931.jpg?sign=1738886799-0s1tlWxpfh5uDiGtPEII1CGoF2qe7dd0-0-f19035b8a06441b78f1af27826791008)
当一段代码比较长时,用户可以在文本字符串中使用反斜杠对代码行进行换行。下面的例子会正确地显示:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216044.jpg?sign=1738886799-DvMaevWVIQB84fhoP9yx6vUBidcpDt39-0-5fdd85f7f100d64b3dd5a2cbe272f582)
不过,用户不能像这样折行:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216046.jpg?sign=1738886799-iXuxTUUWYfyJMXhAVSQXkJATRsD03ffs-0-3f2b97c425e9d8e0baff19999b41def4)
3.1.5 注释语句
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165932.jpg?sign=1738886799-WutfvMLLgAMK6P6oryf97BgIrozQScIx-0-06ea51b3c6c60702227bb3b16905163f)
与C、C++、Java、PHP相同,JavaScript的注释分为两种,其中一种是单行注释,例如:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_165928.jpg?sign=1738886799-O8aPaLztERV8ZfyNN4yiOEsd7jsyPEdS-0-cd9e31aa70799dc1f118b642e1546961)
另一种是多行注释,例如:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P48_216048.jpg?sign=1738886799-4JbpqH3p6dzzJmJeC34wzKtvKhhvJom2-0-7774b242a0c91eadb2512e4642799431)
3.2 JavaScript的变量
变量是用来临时存储数值的容器。在程序中,变量存储的数值是可以变化的,变量占据一段内存,通过变量的名字可以调用内存中的信息。
3.2.1 变量的声明
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P49_165973.jpg?sign=1738886799-qWaHcZ2X7m1sqUldsolszJ0MYYRckbph-0-422cc549fccac10e62cf725109184760)
尽管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=1738886799-aybryaVutX3nMN6V4AwS3rgm984qjQD5-0-c2c11eecac0be1ac3021c4c3d1a286af)
变量的作用范围又称为作用域,是指某变量在程序中的有效范围。根据作用域的不同,变量可划分为全局变量和局部变量。
- 全局变量:全局变量的作用域是全局性的。在整个JavaScript程序中,全局变量处处都存在。
- 局部变量:局部变量是函数内部声明的,只作用于函数内部,其作用域是局部性的;函数的参数也是局部性的,只在函数内部起作用。
【例3-1】(实例文件:ch03\Chap3.1.html)变量定义示例。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P49_216059.jpg?sign=1738886799-NPuL1Pp6Jys2Ncu9LGkdvCpAwnjaqDKX-0-4364d89c1c928e5dc36803e54db823eb)
相关的代码示例请参考Chap3.1.html文件。在IE浏览器里面运行的结果如图3-1所示,从结果中可以看到同一变量名具有不同的运行结果。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166025.jpg?sign=1738886799-0MkY8Qm9JpxbC7kLDy2VqyGvC6QwaENl-0-81a83c479c76c7ed6d383dbb54528d59)
图3-1 定义变量后的运行结果
3.2.3 变量的优先级
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166034.jpg?sign=1738886799-eAtCEowGuWmIb0ptLkaXPhP4j827Lauz-0-71a8665f174bbc68642b747504cab0ce)
在函数内部,局部变量的优先级高于同名的全局变量。也就是说,如果存在与全局变量名称相同的局部变量,或者在函数内部声明了与全局变量同名的参数,则该全局变量将不再起作用。
【例3-2】(实例文件:ch03\Chap3.2.html)变量的优先级。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_216061.jpg?sign=1738886799-EW9iAYACyKJcT0moPezRJEl4lvsUaSkw-0-d260ef79923a4b1b2ed2c5c5ac6c71c4)
相关的代码示例请参考Chap3.2.html文件,在IE浏览器里面运行的结果如图3-2所示,从结果中可以看出输入的是“局部变量”。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P50_166031.jpg?sign=1738886799-zryUQ0m6tAUzPlfkjORwIPbgFMSr3s6Q-0-3b8220fa9853227e14a487121039eb68)
图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=1738886799-BdB7ePOKC8IB9tIED8vEtQaLiVZZojVV-0-103d3644d4b345e025733073c6b1f5bf)
相关的代码示例请参考Chap3.3.html文件,在IE浏览器里面运行的结果如图3-3所示。
单击“确定”按钮,结果如图3-4所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P51_166078.jpg?sign=1738886799-5MhRwk3A5DjOAcRdXTwbbXNAHgGDB3hp-0-5c5de1f10b1791b2cf2ba168c2f8eef4)
图3-3 运行结果
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P51_166079.jpg?sign=1738886799-69I5ihf1YbNMPxGm4m6egVG0aHmdAeja-0-932ef6a61eb368408e4c8f7dd878804d)
图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=1738886799-vBUkEoE3LYs4moDfB1FMc0gIub6BM0mw-0-ae6450e527b33d1a94c983d222126e82)
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=1738886799-C7AOA5ayBpgX6vCcCOwXTfCpAjxT7Wv0-0-0028b669368f62f81a43d8beed3220c9)
相关的代码示例请参考Chap3.4.html文件,在IE浏览器里面运行的结果如图3-5所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166134.jpg?sign=1738886799-q4QqO3jKKhr3Rz4usdRzI5M1nfGJwbnT-0-bd5c9d4957c0acf4e23c8dadd995b778)
图3-5 使用Undefined运行结果
3.3.2 空类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166166.jpg?sign=1738886799-C4OEGckYWXBNtTsN229AFlEjU2zMQKYJ-0-118b769c2258cfca3aa152ac7392d0f5)
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=1738886799-zgvUGqMIhs4DVJC8XJDWXvodOdFCxaw1-0-9be438b1017fb9ff4f01ec8609060561)
相关的代码示例请参考Chap3.5.html文件,在IE浏览器里面运行的结果如图3-6所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166127.jpg?sign=1738886799-iBlYXyZS55AyT1bGFKAA8CYOm6QYs5Rs-0-6ca377eaf25bad7edb36122e79f4069f)
图3-6 使用空类型运行结果
3.3.3 布尔型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P52_166106.jpg?sign=1738886799-gyLquBbpatBQNyd1sVvwlBNd2Nqhb4ts-0-3853d003477b99b0d77c159e20b3d3fb)
数值数据类型和字符串数据类型可能的值都无穷多,但布尔型数据类型只有两个值,这两个合法的值分别由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=1738886799-nzf0Qrmcccc5UtCQ8ikvKcr2SSiDCwDV-0-448d3f48d2137fee7a5a1ca95f2911bf)
相关的代码示例请参考Chap3.6.html文件,在IE浏览器里面运行的结果如图3-7所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166224.jpg?sign=1738886799-vkEtAlB5dAjcG2Gm1ZID7PzjocRObG9k-0-f8eadd905355ef0df42a9aa6e16d83c3)
图3-7 使用布尔型运行结果
3.3.4 字符串
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166237.jpg?sign=1738886799-B6aYOjMqyYvIpKbTq6z69zzxD8oy6tJe-0-9f8e518b7a9eea307de888c37507c60f)
字符串由零个或者多个字符构成,字符可以包括字母、数字、标点符号和空格、字符串必须放在单引号或者双引号里。JavaScript字符串定义方法如下。
方法一:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166233.jpg?sign=1738886799-NRJ0YaBA1YIhjM7WAxjjEK4EDubrAlQb-0-128f36d466ab0b7601b65cc93df0caaa)
方法二:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P53_166235.jpg?sign=1738886799-ZPQTzpWttDzi1Ozul8PR6ArMyPRi08qA-0-ff37b716a27f63d8a57833a547a8b43c)
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=1738886799-WCtCII98HACJ1tzHkwWZRBIH8aAithdO-0-48ae08e251bff8421eda165f7835b765)
注意,虽然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=1738886799-85ThKY9eJjZGXXxZWg8dq0PU2XbCqam1-0-de10a023f1c80f85155d2780394426dd)
相关的代码示例请参考Chap3.7.html文件。在IE浏览器里面运行的结果如图3-8所示,从结果中可以看到字符串连接运行的结果。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P55_166464.jpg?sign=1738886799-Oait0OteGY3WJF0MlQD1VSW3KiR4IjPb-0-e8a35d69a840944ec2e3ab5782e0e244)
图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=1738886799-SUexDXB7nI24asxF5lKQwbjKuDArEjcl-0-348f0ffc26dd41df9f2df38f4893c5a4)
相关的示例请参考Chap3.8.html文件。在IE浏览器里面运行的结果如图3-9所示,从结果中可以看到字符串的长度已经被计算出来。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P55_166472.jpg?sign=1738886799-FXmdT6UUZQ0KK7b8ANaIPHBG4ZrsHVSj-0-f455f9a5277f31f545699d8a7e6ac8e9)
图3-9 计算字符串的长度
根据字符串的length属性,可以对其进行许多操作,例如,可以获取字符串s的最后一个字符:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216087.jpg?sign=1738886799-vu4tADhRptEMyDAisQMw1XS9yguSBOnc-0-1a7853d73dbf8cc75bf8fe3ef04b8f9d)
因为length是一个字符串的长度,即字符串的个数,而字符串中的首字符是从0开始的,所以最后一个字符在字符串中的位置为length-1。
2.字符串的大小写转换
使用字符串对象中的toLocaleLowerCase()、toLocaleUpperCase()、toLowerCase()、toUpperCase()方法可以转换字符串的大小写。这4种方法的语法格式如下:
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216089.jpg?sign=1738886799-eSZWxocKwvJBkTXMp5Sm2BDDGQdPNaGz-0-462d0971c082e1e4d12d89200179a0bc)
【例3-9】(实例文件:ch03\Chap3.9.html)字符串大小转换。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_216091.jpg?sign=1738886799-GA90rSr4YAr4XweyUGUaCx4GLuRpLujm-0-dfd0376132b4a6643e7743d461f105b8)
相关的代码示例请参考Chap3.9.html文件,在IE浏览器里面运行的结果如图3-10所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_166539.jpg?sign=1738886799-gYHEnBoH91ICFJnvdUIYQyOU4KOtHJay-0-7c5858e0c225763dd3b980f3412f1e01)
图3-10 字符串大小转换
3.3.5 数值类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P56_166548.jpg?sign=1738886799-W6E7pMEMJsdyCg8hJyAe5iXRE5DNW7Y4-0-b8ffe1f3da12bc3d8940bcdf46bcec72)
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=1738886799-pApwFgKj0j21x5bx9DhORV7xSB8VsUPF-0-2dd912b3072303fbe8633ec92be0c150)
相关的代码示例请参考Chap3.10.html文件,在IE浏览器里面运行的结果如图3-11所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P57_166610.jpg?sign=1738886799-QSh9jDqRjiwFDmcJhYy2CLVefDJcJ1MT-0-8f2ae484df4cdee94364529f64146ac2)
图3-11 输出数值
提示:JavaScript中只有一种数字类型,而且内部使用的是64位浮点型,等同于C#或Java中的double类型。
3.3.6 对象类型
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P57_166620.jpg?sign=1738886799-wPVugaUyz372SPTrTUlOPwDjiVWZNmN1-0-3933edbe5e7264c19d21b569720590c6)
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=1738886799-uHMLdYzslyFIZAjjRyuFUJ6WnwzKtP1a-0-de271222ebc2066258a281e4acc08ecb)
相关的代码示例请参考Chap3.11.html文件,在IE浏览器里面运行的结果如图3-12所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P58_166637.jpg?sign=1738886799-Y2GnGfAKQdvSjO67CHTXXQfLU74o0yHf-0-347f2f20c3c7cdf73ab0e666992377e7)
图3-12 Object数据类型的使用
3.4 JavaScript的关键字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P58_166878.jpg?sign=1738886799-h57HyZcYS0ix4H9XEEI8RgC1MEViIjQA-0-ddb9d6824d941bd06c78f482ecc099cd)
关键字标识了JavaScript语句的开头或结尾。根据规定,关键字是保留的,不能用作变量名或函数名。表3-2所示为JavaScript中的关键字。
表3-2 JavaScript中的关键字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-T58_166753.jpg?sign=1738886799-yct3Kjeph2n3WMI22dsiG8btuRPKE2Fc-0-96278ce95651a05477fc29c117e54bb0)
提示:JavaScript中的关键字是不能作为变量名和函数名使用的。
3.5 JavaScript的保留字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_000.jpg?sign=1738886799-l4XZBtIFERqpxMpxj1xkpBSCYoPZ2UBl-0-88d5e3bfc8bcd6c56d040b5239aac683)
保留字在某种意义上是为将来的关键字而保留的单词。因此,保留字不能被用作变量名或函数名。表3-3所示为JavaScript中的保留字。
表3-3 JavaScript中的保留字
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-T58_166877.jpg?sign=1738886799-taXRGriJNMOH9PwcTJxDAgz1eDUsrJXK-0-c9081ab1b808146c6d02a038f3287b8c)
提示:如果将保留字用作变量名或函数名,那么除非将来的浏览器实现了该保留字,否则很可能收不到任何错误消息。当浏览器将其实现后,该单词将被看作关键字,如此将出现关键字错误。
3.6 典型案例——九九乘法表
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_166958.jpg?sign=1738886799-LOJZZaYBxyjYuSfIffqfACXU7ybr7718-0-401994bc031f5d7f97505504138e4e64)
下面是一个JavaScript综合实例——九九乘法表。
【例3-12】(实例文件:ch03\Chap3.12.html)九九乘法表。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_216105.jpg?sign=1738886799-qDb09fg8bSfM4ltd5NurerBSy0shuEGv-0-7ad9c6fc724c975214c828be9ce875a9)
相关的示例请参考Chap3.12.html文件,在IE浏览器里面运行的结果如图3-13所示。
![](https://epubservercos.yuewen.com/544327/15253387304115506/epubprivate/OEBPS/Images/Figure-P59_166951.jpg?sign=1738886799-JMYp3GxBD6PeatGl1U29Ff6WLy3l4Fig-0-f1d82dd02255bf7123f3c4c98176c33f)
图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循环的一部分,这样可使得循环变量的声明成为循环语法自身的一部分,使用起来较为方便。