3.2 JavaScript语言基础
3.2.1 JavaScript的语法
JavaScript与Java在语法上有些相似,但也不尽相同。下面将结合Java语言对编写JavaScript代码时需要注意的事项进行详细介绍。
JavaScript区分大小写
JavaScript区分大小写,这一点与Java语言是相同的。例如,变量username与变量userName是两个不同的变量。
每行结尾的分号可有可无
与Java语言不同,JavaScript并不要求必须以分号(;)作为语句的结束标记。如果语句的结束处没有分号,JavaScript会自动将该行代码的结尾作为语句的结尾。
【例3.1】 每行末尾添加分号与不添加分号,实例代码如下:
alert("您好!欢迎访问我公司网站!") alert("您好!欢迎访问我公司网站!");
说明
最好的代码编写习惯是在每行代码的结尾处加上分号,这样可以保证每行代码的准确性。
变量是弱类型的
与Java语言不同,JavaScript的变量是弱类型的。因此在定义变量时,只使用var运算符,就可以将变量初始化为任意的值。例如,通过以下代码可以将变量username初始化为mrsoft,而将变量age初始化为20。
【例3.2】 在JavaScript中定义变量。
var username="mrsoft"; //将变量username初始化为mrsoft var age=20; //将变量age初始化为20
使用大括号标记代码块
与Java语言相同,JavaScript也是使用一对大括号标记代码块,被封装在大括号内的语句将按顺序执行。
注释
在JavaScript中,提供了两种注释,即单行注释和多行注释。下面进行详细介绍。
单行注释使用双斜线“//”开头,在“//”后面的文字为注释内容,在代码执行过程中不起任何作用。例如,在下面的代码中,“获取日期对象”为注释内容,在代码执行时不起任何作用。
【例3.3】 在JavaScript代码中添加注释。
var now=new Date(); //获取日期对象
多行注释以“/*”开头,以“*/”结尾,在“/*”和“*/”之间的内容为注释内容,在代码执行过程中不起任何作用。
例如,在下面的代码中,“功能……”“参数……”“时间……”“作者……”等为注释内容,在代码执行时不起任何作用。
【例3.4】 在JavaScript代码中添加多行注释。
3.2.2 JavaScript中的关键字
JavaScript中的关键字是指在JavaScript中具有特定含义的、可以成为JavaScript语法中一部分的字符。与其他编程语言一样,JavaScript中也有许多关键字,JavaScript中的关键字如表3.1所示。
表3.1 JavaScript中的关键字
注意
JavaScript中的关键字不能用作变量名、函数名以及循环标签。
3.2.3 JavaScript的数据类型
JavaScript的数据类型比较简单,主要有数值型、字符型、布尔型、转义字符、空值(null)和未定义值6种,下面分别进行介绍。
1.数值型
JavaScript的数值型数据又可以分为整型和浮点型两种,下面分别进行介绍。
整型
JavaScript的整型数据可以是正整数、负整数和0,并且可以采用十进制、八进制或十六进制来表示。
【例3.5】 定义整型变量。
说明
以0开头的数为八进制数,以0x开头的数为十六进制数。
浮点型
浮点型数据由整数部分加小数部分组成,只能采用十进制,但是可以使用科学记数法或标准方法来表示。
【例3.6】 定义浮点型变量。
2.字符型
字符型数据是使用单引号或双引号括起来的一个或多个字符。
单引号括起来的一个或多个字符。
【例3.7】 定义应用单引号括起来的字符型变量。
'a' '保护环境从自我做起'
双引号括起来的一个或多个字符。
【例3.8】 定义双引号括起来的字符型变量。
"b" "系统公告:"
说明
JavaScript与Java不同,它没有char数据类型,要表示单个字符,必须使用长度为1的字符串。
3.布尔型
布尔型数据只有两个值,即true或false,主要用来说明或代表一种状态或标志。在JavaScript中,也可以使用整数0表示false,使用非0的整数表示true。
4.转义字符
以反斜杠开头的不可显示的特殊字符通常称为控制字符,也被称为转义字符。通过转义字符可以在字符串中添加不可显示的特殊字符,或者防止引号匹配混乱的问题。JavaScript常用的转义字符如表3.2所示。
表3.2 JavaScript常用的转义字符
【例3.9】 在网页中弹出一个提示对话框,并应用转义字符“\r”将文字分为两行显示,代码如下:
alert("欢迎访问我公司网站!\r http://www.mingribook.com");
上面代码的执行结果如图3.1所示。
图3.1 弹出提示对话框
说明
在“document.writeln();”语句中使用转义字符时,只有将其放在格式化文本块中才会起作用,所以输出的带转义字符的内容必须在<pre>和</pre>标记内。
5.空值
JavaScript中有一个空值(null),用于定义空的或不存在的引用。如果试图引用一个没有定义的变量,则返回一个null值。
注意
空值不等于空的字符串("")或0。
6.未定义值
当使用了一个并未声明的变量,或者使用了一个已经声明但没有赋值的变量时,将返回未定义值(undefined)。
说明
JavaScript中还有一种特殊类型的数字常量NaN,即“非数字”。当在程序中由于某种原因发生计算错误后,将产生一个没有意义的数字,此时JavaScript返回的数字值就是NaN。
3.2.4 变量的定义及使用
变量是指程序中一个已经命名的存储单元,其主要作用就是为数据操作提供存放信息的容器。在使用变量前,必须明确变量的命名规则、变量的声明方法以及变量的作用域。
1.变量的命名规则
JavaScript变量的命名规则如下:
变量名由字母、数字或下画线组成,但必须以字母或下画线开头。
变量名中不能有空格、加号、减号或逗号等符号。
不能使用JavaScript中的关键字(见表3.1)。
JavaScript的变量名是严格区分大小写的。例如,arr_week与arr_Week代表两个不同的变量。
说明
虽然JavaScript的变量可以任意命名,但是在实际编程时,最好使用便于记忆且有意义的变量名,以便增加程序的可读性。
2.变量的声明
在JavaScript中,可以使用关键字var声明变量,其语法格式如下:
var variable;
参数说明:
variable:用于指定变量名,该变量名必须遵守变量的命名规则。
在声明变量时需要遵守以下规则:
可以使用一个关键字var同时声明多个变量。
【例3.10】 同时定义多个变量,代码如下:
var now,year,month,date;
可以在声明变量的同时对其进行赋值,即初始化。
【例3.11】 定义变量并进行赋值,代码如下:
var now="2009-05-12",year="2009", month="5",date="12";
如果只是声明了变量,但未对其赋值,则其默认值为undefined。
当给一个尚未声明的变量赋值时,JavaScript会自动用该变量名创建一个全局变量。在一个函数内部,通常创建的只是一个仅在函数内部起作用的局部变量,而不是一个全局变量。要创建一个全局变量,则必须使用var关键字进行变量声明。
由于JavaScript采用弱类型,所以在声明变量时不需要指定变量的类型,而变量的类型将根据变量的值来确定。
【例3.12】 定义变量并进行赋值,代码如下:
3.变量的作用域
变量的作用域是指变量在程序中的有效范围。在JavaScript中,根据变量的作用域可以将变量分为全局变量和局部变量两种。全局变量是定义在所有函数之外,作用于整个脚本代码的变量;局部变量是定义在函数体内,只作用于函数体内的变量。
【例3.13】 下面的代码将说明变量的有效范围。
3.2.5 运算符的应用
运算符是用来完成计算或者比较数据等一系列操作的符号。常用的JavaScript运算符按类型可分为赋值运算符、算术运算符、比较运算符、逻辑运算符、条件运算符和字符串运算符6种。
1.赋值运算符
JavaScript中的赋值运算可以分为简单赋值运算和复合赋值运算。简单赋值运算是将赋值运算符(=)右边表达式的值保存到左边的变量中;而复合赋值运算混合了其他操作(算术运算操作、位操作等)和赋值操作。
【例3.14】 下面的代码将说明变量的有效范围。
sum+=i; //等同于sum=sum+i;
JavaScript中的赋值运算符如表3.3所示。
表3.3 JavaScript中的赋值运算符
2.算术运算符
算术运算符用于在程序中进行加、减、乘、除等运算。在JavaScript中常用的算术运算符如表3.4所示。
表3.4 JavaScript中的算术运算符
注意
执行除法运算时,0不能作为除数。如果0作为除数,返回结果则为Infinity。
【例3.15】 编写JavaScript代码,应用算术运算符计算商品金额。(实例位置:资源包\TM\sl\3\1)
运行结果如图3.2所示。
图3.2 显示商品金额
3.比较运算符
比较运算符的基本操作过程是:首先对操作数进行比较,这个操作数可以是数字也可以是字符串,然后返回一个布尔值true或false。在JavaScript中常用的比较运算符如表3.5所示。
表3.5 JavaScript中的比较运算符
4.逻辑运算符
逻辑运算符通常和比较运算符一起使用,用来表示复杂的比较运算,常用于if、while和for语句中,其返回结果为一个布尔值。JavaScript中常用的逻辑运算符如表3.6所示。
表3.6 JavaScript中的逻辑运算符
5.条件运算符
条件运算符是JavaScript支持的一种特殊的三目运算符,其语法格式如下:
操作数?结果1:结果2
如果“操作数”的值为true,则整个表达式的结果为“结果1”,否则为“结果2”。
【例3.16】 应用条件运算符计算两个数中的最大数,并赋值给另一个变量。代码如下:
var a=26; var b=30; var m=a>b?a:b //m的值为30
6.字符串运算符
字符串运算符是用于两个字符型数据之间的运算符,除了比较运算符外,还可以是+和+=运算符。其中,+运算符用于连接两个字符串,而+=运算符则连接两个字符串,并将结果赋给第一个字符串。
【例3.17】 在网页中弹出一个提示对话框,显示进行字符串运算后变量a的值。代码如下:
上述代码的执行结果如图3.3所示。
图3.3 弹出提示对话框