JavaScript内核之基本概念内核之基本概念
本文将聚焦于JavaScript中的基本概念,这些概念与传统语言有比较大的不同,因此单独列出一章来做专门描
述,理解本章的概念对书中后续章节的概念,代码的行为等会有很大的帮助,读者不妨花比较大的时间在本
章,即使你对JavaScript已经比较熟悉,也建议通读本
本章主要讲述JavaScript中的数据类型(基本类型与引用类型),变量(包括变量的作用域),操作符(主要是一些较为常见,但是
不容易从字面上理解的操作符)。由于JavaScript中的“一切皆对象”,在掌握了这些基本的概念之后,读者就可以较为轻松的理
解诸如作用域,调用对象,闭包,currying等等较难理解的概念了。
数据类型数据类型
有程序设计经验的读者肯定知道,在C或者Java这样的语言中,数据是有类型的,比如用以表示用户名的属性是字符串,而一
个雇员的年龄则是一个数字,表示UI上的一个开关按钮的数据模型则为布尔值等等,对数字可能还可以细分为浮点数,整型
数,整型数又可能分为长整型和短整型,总而言之,它们都表示语言中的数据的值的类型。
JavaScript中的数据类型分为两种:基本数据类型和对象类型,其中对象类型包含对象,数组,以及函数(事实上,函数,数组
等也都是对象,这个在后边的章节详述)。
1.1.1 基本数据类型基本数据类型
在JavaScript中,包含三种基本的数据类型,字符串(String),数值(Number),布尔值(boolean),下面是一些简单的例子:
复制代码 代码如下:
var str = "Hello, world";//字符串
var i = 10;//整型数
var f = 2.3;//浮点数
var b = true;//布尔值
我们可以分别查看变量的值及变量的类型:
复制代码 代码如下:
print(str);
print(i);
print(f);
print(b);
print(typeof str);
print(typeof i);
print(typeof f);
print(typeof b);
注意,在此处使用的print()函数为rhino解释器的顶层对象的方法,可以用来打印字符串,通常情况下,在客户端,程序员多使
用alert()进行类似的动作,alert()是浏览器中JavaScript解释器的顶层对象(window)的一个方法。
Hello, world
10
2.3
true
string
number
number
Boolean
在JavaScript中,所有的数字,不论是整型浮点,都属于“数字”基本类型。typeof是一个一元的操作符,在本章的另外一个小
节会专门讲到。
1.1.2 对象类型对象类型
这里提到的对象不是对象本身,而是指一种类型,我们在第三章会对对象进行详细的讨论,此处的对象包括,对象(属性的集
合,即键值的散列表),数组(有序的列表),函数(包含可执行的代码)。
对象类型是一种复合的数据类型,其基本元素由基本数据类型组成,当然不限于基本类型,比如对象类型中的值可以是其他的
对象类型实例,我们通过例子来说明:
复制代码 代码如下: