object
object
undefined
null, undefined, NaN
在 JavaScript 中,有三个特殊的值,如标题所示。其中第一个大家可能都比较熟悉吧,C/C++ 里面也有,不过是大写的,其本质就是一个
“`C++
define NULL 0
而在 JavaScript 中,这三个值所代表的意义都不同。
### null ###
null 是一种特殊的 object,大致的意思就是空。比如说:
var a = null;
大家都能看懂,就不多做解释了。但是跟 C/C++ 不同的是,这个 null 跟 0 不相等。
### undefined ###
这个东西的意思就是说这个变量未声明。为了能够更好地区分 null,我们的样例代码如下写:
“`javascript
var a = {
“foo” : null
};
console.log(a[“foo”]);
console.log(a[“bar”]);
上面的代码中,我们让 a[“foo”] 的值为空,即 null。而压根没有声明 a[“bar”] 这个东西,它连空都不是。输出的结果大家都差不多应该猜到了:
null
undefined
NaN
这是一个空的数值,是一个特殊的 number。它的全称是 Not a Number。有点奇怪,大家可以理解为 不是数字形态,或者数值出错的 number 类型变量。
多在浮点型数值运算错误(如被0除)的情况下出现,甚至可以是用户自己让一个变量等于 NaN 以便返回一个错误值让大家知道这个函数运算出错了云云。
小杂碎
其它剩余的语句也跟已存在的其它语言差不多,比如说 break 啊、switch 啊、continue 啊等等等等。
变量类型
这一节主要讲的是 JavaScript 对象,其它类型差不多一带而过吧。
基础类型
Node.js 包含的基础类型差不多有如下几个:
number
string
boolean
array
其中前三种类型可以直接赋值, 而 array 的赋值只是一个引用赋值而已,在新变量中改变某个值的话旧变量的值也会改变 ,直接可以试试下面的代码:
javascript
var foo = [ 1, 2, 3 ];
var bar = foo;
bar[0] = 3;
console.log(foo);
它得出的结果是:
javascript
[ 3, 2, 3 ]也就是说 array 要是复制出一个新的数组的话,不能用直接赋值的方法,而必须“深拷贝”。
这里有必要讲一下 array 的三种创建方法。
第一种:
javascript
var dog = new Array();
dog[0] = “嘘~”;
dog[1] = “蛋花汤”;
dog[2] = “在睡觉”;
第二种:
javascript
var dog = new Array( “嘘~”, “蛋花汤”, “在睡觉” );
第四种:
javascript
var dog = [
“嘘~”,
“蛋花汤”,









