Javascript语法基础
一、基本数据类型
JavaScript中支持数字、字符串和布尔值三种基本数据类型:
1.数字
数字型是JavaScript中的基本数据类型。在JavaScript中的数字不区分整型和浮点型,所有的数字都是以浮点型来表示的。
2.字符串
字符串型是JavaScript中用来表示文本的数据类型,是由Unicode字符、数字和标点符号组成的一个字符串序列。字符串通常都是用单引号或双引号括起来的。如果在字符串中包括着特殊字符,可以使用转义字符来代替。例如:
“” //空串,它的字符数是0
“hello world!” //表示字符串hello world
“3.14”
“这个字符串\n共有两行内容” //其中\n是表示换行的转义字符
“you\'re right,it can\'t be quote” //其中\’是表示单引号的转义字符
3.布尔型
布尔型比较简单,只有两个值,即代表真的“true”和代表假的“false”。布尔值通常是通过比较得来的,如以下代码:
x == 2
在上面代码中,如果x等于2,则返回true,如果x不等于2,则返回false。
二、复合数据类型
JavaScript复合数据类型包括对象和数组两种。
1.对象
对象其实就是一些数据的集合,这些数据可以是字符串型、数字型、布尔型,也可以是复合型。对象中的数据是已命名的数据,通常作为对象的属性来引用。例如一个超链接(link)对象有一个名为text的属性,可以通过以下方法来引用:
link.text
JavaScript中的对象除了拥有属性之外,还可以拥有方法。例如一个窗口(window)对象有一个名为alert的方法,可以通过以下方法来引用:
window.alert(message)
2.数组
数组与对象一样,也是一些数据的集合,这些数据也可以是字符串型、数字型、布尔型,或者是复合型。与对象不同的,数组中的数据并没有被命名,即数组的中数据没有名字,因此不能通过名字来引用该数据。在数组中为每个数据都编了一个号,这个号称为数组的下标。在JavaScript中数组的下标是从0开始,通过使用数组名加下标的方法可以获取数组中的某个数据。如以下代码分别获取名为abc数组的第1个和第3个数据:
abc[0]
abc[2]
三、常量
常量(Literals)通常用来表示一个固定的值,这个值是不会被改变的。根据JavaScript中的三种基本数据类型:数值类型、逻辑类型和字符串类型,JavaScript中主要有以下4种常量:数值常量、字符串常量、布尔常量、Null常量。
1.数值常量
整型常量是程序设计过程中最常使用的一种常量形式,整形常量的数据类型隐含用32个二进制位来表示。JavaScript中允许定义十进制常量,也允许定义八进制常量或十六进制常量。其中:
表示十进制常量时不能以数字“0”或“0x”开头。
表示八进制常量时要用数字“0”开头,数字只能是0~7。
表示十六进制常量要用数字“0x”开头,所用数字只能是0~15,并用A~F或a~f来分别代替10~15这六个数字。
另外,浮点型常量又称为实型常量,一般用于表示需要小数部分的数据。浮点常量可以包含小数点,其表示方法有以下两种:
(1)传统记数法:传统记数法是将一个浮点数分为三个部分,如3.14、10.0。
(2)科学记数法:当一个数字很大或很小的时候,可以使用科学记数法来表示。如1.00E+2、100E-2。
2.字符串常量
字符串是由单引号(')或双引号(")括起来的字符序列。其中字符序列的个数可以是零个或多个。单引号所括起来的字符序列里可以包括双引号,而双引号所括起来的字符序列里也可以包含单引号。字符串常量必须写在一行中,如果换行的话,JavaScript会认为是两个语句而产生错误。
3.布尔常量
布尔常量是比较简单的一种常量,只有两种值,一种是true(真),一种是false(假)。在有些时候,JavaScript也可以把0和1分别看成false和true。布尔常量常用于条件判断语句中。
4.null常量
null是空的意思,在JavaScript语言中表示一个“空”的值,一般null主要用于表示完全没有的对象。如果我们希望仅仅声明一个对象存在,并指定它的名称,而暂时不为对象分配内存空间,这时就可以利用null声明一个“空”对象。
注意:在数值数据中null表示0,在字符串数据中null表示一个空串。
四、变量
变量(variable)是相对常量而言的,常量通常是一个不会改变的固定值,而变量是对应到某个值的一个符号,这个符号中的值可能会随着程序的执行而改变,因此称为“变量”。在很多情况下,变量又称为标识符(identifier)。
当你回忆在学校学过的代数课程时,想到的很可能是:x=5, y=6, z=x+y 等等。你还记得,一个字母可以保存一个值,并且可以使用上面的信息计算出 z 的值是 11。这些字母称为变量,变量可用于保存值 (x=5) 或表达式 (z=x+y)。
1.变量的命名方式
变量可以用来存储数据,JavaScript中是通过变量名来调用这些被存储的数据。变量名必须以ASCII字符或下划线(_)开头,第1个字母不能是数字,但其后可以是数字或其他字母。
2.变量类型
JavaScript与其他程序语言之间有些区别,其他程序语言大多需要为变量指定一个数据类型,例如将一个变量指定为整数型,那么这个变量就只能存储整数型数据,不可以存储浮点型或其他类型的数据。而JavaScript中的变量是没有类型(notype)的,这就意味着在JavaScript中的变量可以是任何一种数据类型。
3.定义变量
在JavaScript中,使用一个变量之前,必须要先定义该变量。只有在定义了一个变量之后,系统才会准备一个内存空间来存储这个变量的值,而程序员可以通过变量名来存储或读取变量的值。在JavaScript中可以使用关键字var来定义一个变量。
var <标识符> [=<值>]
如:var a=5;
var PI=3.14;
var tag;
4.定义变量的注意事项
虽然在JavaScript中定义变量是一件十分简单的事情,但是在定义变量时,有以下几点是需要注意的:
- 变量对大小写敏感(小写y 和大写Y 是两个不同的变量);
- 变量必须以字母或下划线开始,其后可以是数字或其他字母;
- 变量名不能和javascript中的保留字相同
- 变量最好是先定义后使用
5.变量的值
由于JavaScript的变量不需要指定数据类型,因此变量值可以是任何类型的数据,包括:
数字型(number):整数型或浮点数,如:123或12.3。
布尔型:又称逻辑型(logical),只能是true或false。
字符串型(string):用单引号或双引号括起来的字符串。
空值(null):这是一种特殊的类型,表示没有值,即该变量为空。
未定义值(undefined):表示变量还没有被赋值。
6.变量的有效范围
变量可以根据其有效范围分为全局变量与局部变量两种。其中全局(global)变量从定义开始,到整个JavaScript代码结束为止,都可以使用;而局部(local)变量只有在函数内部里才生效。
7.保留字
在为变量命名时,是不能与JavaScript中的保留字同名。因为这些保留字对于JavaScript来说具有特殊意义,是JavaScript语法中的一部分。事实上,保留字不但不能用作变量名,也不能用作函数名以及循环标签。
五、数组
1.定义数组
数组对象用来在单独的变量名中存储一系列的值。通常使用关键词 new 来创建数组对象。下面的代码定义了一个名为 myArray 的数组对象:
var myArray=new Array()
有两种向数组赋值的方法(你可以添加任意多的值,就像你可以定义你需要的任意多的变量一样)。
第一种方法:
var mycars=new Array()
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"
也可以使用一个整数自变量来控制数组的容量:
var mycars=new Array(3)
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"
第二种方法:
var mycars=new Array("Saab","Volvo","BMW")
注意:如果你需要在数组内指定数值或者逻辑值,那么变量类型应该是数值变量或者布尔变量,而不是字符变量。
2.访问数组
通过指定数组名以及索引号码,你可以访问某个特定的元素。
下面是代码行:
document.write(mycars[0])
下面是输出:
Saab
3.修改已有数组中的值
如需修改已有数组中的值,只要向指定下标号添加一个新值即可:
mycars[0]="Opel";
现在,以上代码:
document.write(mycars[0]);
将输出:
Opel
六、运算符和表达式
表达式与运算符是一个程序的基础,JavaScript中的表达式与运算符和C、C++、Java中的表达式与运算符十分相似,请看下面的介绍。
1.运算符
在任何一种语言中,处理数据是必不可少的一个功能,而运算符就是处理数据中所不能缺少的一种符号。
运算符(Operator)是一种用来处理数据的符号,日常算数中所用到的“+”、“-”、“×”、“÷”都属于运算符。在JavaScript中的运算符大多也是由这样一些符号所表示,除此之外,还有一些运算符是使用关键字来表示的。
运算符所连接的是操作数,而操作数也就是变量或常量,变量和常量都有一个数据类型,因此,在使用运算符创建表达式时,一定要注意操作数的数据类型。每一种运算符都要求其作用的操作数符合某种数据类型。
运算符 = 用于给 JavaScript 变量赋值。
算术运算符 + 用于把值加起来。
y=5;
z=2;
x=y+z;
在以上语句执行后,x 的值是 7。
⑴ JavaScript 算术运算符
算术运算符用于执行变量与/或值之间的算术运算。给定 y=5,下面的表格解释了这些算术运算符:
运算符 |
描述 |
例子 |
结果 |
+ |
加 |
x=y+2 |
x=7 |
- |
减 |
x=y-2 |
x=3 |
* |
乘 |
x=y*2 |
x=10 |
/ |
除 |
x=y/2 |
x=2.5 |
% |
求余数 (保留整数) |
x=y%2 |
x=1 |
++ |
累加 |
x=++y |
x=6 |
-- |
递减 |
x=--y |
x=4 |
⑵ JavaScript 赋值运算符
赋值运算符用于给 JavaScript 变量赋值。给定 x=10 和 y=5,下面的表格解释了赋值运算符:
运算符 |
例子 |
等价于 |
结果 |
= |
x=y |
x=5 |
|
+= |
x+=y |
x=x+y |
x=15 |
-= |
x-=y |
x=x-y |
x=5 |
*= |
x*=y |
x=x*y |
x=50 |
/= |
x/=y |
x=x/y |
x=2 |
%= |
x%=y |
x=x%y |
x=0 |
⑶ 用于字符串的 + 运算符
+ 运算符用于把文本值或字符串变量加起来(连接起来)。如需把两个或多个字符串变量连接起来,请使用 + 运算符。
txt1="What a very";
txt2="nice day";
txt3=txt1+txt2;
在以上语句执行后,变量 txt3 包含的值是 "What a verynice day"。
要想在两个字符串之间增加空格,需要把空格插入一个字符串之中:
txt1="What a very ";
txt2="nice day";
txt3=txt1+txt2;
或者把空格插入表达式中:
txt1="What a very";
txt2="nice day";
txt3=txt1+" "+txt2;
在以上语句执行后,变量 txt3 包含的值是:"What a very nice day"
⑷ 对字符串和数字进行加法运算
请看这些例子:
x=5+5;
document.write(x);
x="5"+"5";
document.write(x);
x=5+"5";
document.write(x);
x="5"+5;
document.write(x);
规则是:如果把数字与字符串相加,结果将成为字符串。
JavaScript 运算符的优先级
优先顺序 |
运算符 |
1 |
.、()、[ ] |
2 |
!、++、typeof、new、void和delete |
3 |
*、/、% |
4 |
+、- |
5 |
<<、>>、>>> |
6 |
<、<=、>、>= |
7 |
= =、!=、= = =、!= = |
8 |
& |
9 |
^ |
10 |
| |
11 |
&& |
12 |
|| |
13 |
条件运算符 |
14 |
=、+=、-=、*=、/=、%=、<<=、>>=、&=、^= 和 |= |
15 |
,(注释:此运算符用于将不同的值分开) |
2.表达式
表达式(expression)就是JavaScript中的一个语句,这个语句可以是常量或变量,也可以是由常量、变量加上一些运算符组成的语句。因此,表达式可以分为以下三种:
(1)常量表达式。常量表达式就是常量本身;
(2)变量表达式。变量表达式就是变量的值;
(3)复合表达式。复合表达式是由常量、变量加上一些运算符所组成的表达式。
如:
10
i+5
(i+10)-sum
六、保留字
在为变量命名时,是不能与JavaScript中的保留字同名。因为这些保留字对于JavaScript来说具有特殊意义,是JavaScript语法中的一部分。事实上,保留字不但不能用作变量名,也不能用作函数名以及循环标签。
JavaScript 保留字
abstract |
boolean |
Break |
byte |
case |
catch |
char |
Class |
const |
continue |
extends |
delete |
Do |
double |
else |
for |
function |
goto |
if |
implements |
import |
in |
instanceof |
int |
interface |
long |
native |
new |
null |
package |
private |
protected |
public |
return |
short |
static |
super |
switch |
synchronized |
this |
throw |
throws |
transient |
true |
try |
typeof |
var |
void |
while |
with |
小结:
JavaScript中的基本数据类型有数字型、字符串型和布尔值三种,除了基本数据类型之外,JavaScript还支持对象、数组、函数、null和undefined数据类型。JavaScript与其他语言一样,也支持常量与变量,不过JavaScript中的变量是无类型的,即可以存储任何一种数据类型的数据。
JavaScript中的运算符比较多,可以分为算术运算符、关系运算符、字符串运算符、赋值运算符、逻辑运算符、逐位运算符和其他运算符七大类。在使用JavaScript中的运算符时,要注意不同运算符的优先次序。在下一章里将会介绍JavaScript中的语句。