《JavaScript DOM编程艺术》学习回顾2
JavaScript DOM编程艺术学习笔记2
JavaScript的语法
这本书的第2章主要就是JavaScript的一些基础语法而已。
语法就是指在语言结构方面的各项规则,使用语言时必须遵守的规定,JavaScript的语法与Java和C++的语法非常相似。
1、语句
用JavaScript编写的脚本,与其他语言编写出来的脚本一样,都由一系列指令构成,这些指令就叫做语句(statement)。对于语句来说只要简单的把各条语句放在不同的行上就行,也可以把语句放在同一行上,注意不管是在同一行还是任意行都要加上“;”,这是一种良好的编程习惯。
2、注释
在JavaScript中,我们常常在脚本中写一些仅供自己参考或提示性的信息,在运行网页的时候忽略它们,这类的语句就是注释(comment)。
JavaScript的注释和Java语言的注释差不多,都有“//”和“/**/”两种注释,其中“//”用来进行单行注释,“/**/”用来进行多行注释。在文档中添加适当的注释很是有用,尤其是增加了文档的可读性。
3、变量
不管学习哪一种语言,都会离不开变量这个词,在我们的生活中,有些东西是固定不变的,有些东西则会发生变化,人们就把变化的东西成为变量(variable)。对于变量来说我们可以随时改变它们的值,而把值存入变量的操作称为赋值(assignment),一个变量被赋值以后,我们就说该变量包含这个值,由于JavaScript是一种弱类型的语言,所以允许程序员直接对变量赋值无需事先声明,这种情况在许多语言中是不允许的,在使用任何变量之前对它所进行的介绍称为声明(declare)。JavaScript没有强制的要求程序员必须提前声明变量,但是声明变量是一种好的习惯。在JavaScript中变量名允许包含字母、数字、美元符号$和下划线(但是不允许第一个字符是数字),在对变量名命名的时候,我们可以添加一些下划线,但是使用更多的时候,使用驼峰的格式(camel case),比如myAge这样的变量,驼峰格式是函数名、方法名和对象属性名命名的首选格式。
4、数据类型
JavaScript是一种弱类型(weakly typed)的语言,这就意味着我们可以在任何阶段改变变量的数据类型,我们可以将一个数立即变成一个字符串。
在JavaScript中有以下几种的原始数据类型。
1)字符串类型(String)
字符串是由零个或多个字符构成,字符包括字母、数字、标点符号和空格,但是必须包含在引号里。使用双引号是一个好的习惯。
2)数值(Number)
在JavaScript中,数值包括了浮点数和整数等所有的数值。
3)布尔值(Boolean)
布尔类型的值只有两个,即true和false,布尔型的值不能用双引号括起来。使用的时候只能取其中的一种值。
4)null类型
空类型只有一个变量值:null,null表示什么都没有,即什么都不表示。、
5)Undefined类型
该类型仅有一个变量值:undefined,一个值为undefined的变量值,就是指在变量被创建后,未给该变量赋值以前所具有的值。
5、数组
所谓数组(Array)就是用一个变量去存储一组值。用它的length属性,可以知道长度。在JavaScript中,声明数组的时候不必指定数组的长度。像数组中添加元素的操作成为填充(populating),不仅要给出新元素的值,还要给出新元素的位置,这个位置就是这个元素的下标(index),如array[index] = element,数组的下标是从0开始的,所以最大的下标是length的长度减一,声明数组可以用var a = new Array(元素值)或var a = [元素值]的方式声明,在JavaScript中可以将不同类型的元素放入到数组中,这是和Java不同的。在JavaScript中有“关联数组”的概念,即时在为新元素给出下标时,不必局限于使用整数数字,也可以用字符串。如:
var lennon = new Array();
lennon["name"] = "John";
lennon["year"] = 1940;
lennon["living"] = false;
类似这样的数组就叫关联数组。事实上,这样创建的是Array对象的属性。在JavaScript中,所有的变量实际上都是某种类型的对象。
6、对象
对象是一种非常重要的数据类型。在JavaScript中也有对象的概念,JavaScript如今已经算是面向对象的语言了,虽然有些书上说它是基于对象的,但是我们可以通过某些东西模仿出来面向对象的特征。创建对象的时候需要使用Object关键字,对于对象来说使用点号设置或获取属性和方法。属性用来描述对象的特征,方法用来描述对象的行为。JavaScript中有自定义对象,内置对象(native Object),宿主对象(host Object)。像Array、Math这样的就是内置对象。宿主对象是依据浏览器的,比如说,Form,Image这样的对象。自定义对象是我们自己的对象。比如说var p = new Person(),就定义了一个对象的实例p,通过p.属性,p.方法就可以为Person()对象添加属性和方法。在JavaScript中有一种简洁的创建对象的方法,花括号语法,比如lennon对象可以写成下面这样:
var lennon = {name:"john",year:1940,living:false};
这种写法有点类似于CSS的写法。
JavaScript中的运算符和一些语句和Java大部分是一样的。只是多了一个for...in的语句,这个语句通常用来遍历数组或者是对象,for(变量 in 对象),通过“对象[变量名]”的方式即可得到元素值。
7、函数
在JavaScript中,函数(function)就是一组允许在你的代码里随时调用的语句。javascript用“function”关键字来描述函数,“function 函数名(){}”的方式即可创建一个函数。JavaScript中有一个arguements属性,是函数的真正传递的参数,有时我们用它来实现函数的重载。说起函数不得不提到变量的作用域,变量分为全局变量(global variable)和局部变量(local variable),javascript默认不加var的是全局变量,如果某个函数中使用了var,那个变量就将被视为一个局部变量,它只存在于这个函数的上下文中;反之,如果没有使用var,那么变量就将被视为一个全局变量,如果脚本里已经存在一个与之同名的全局变量,这个函数就会改变那个全局变量的值。