原始类型和引用类型

一.原始类型(基本数据类型)

Ⅰ.说明:

1.基本数据类型的变量直接保存原始值(而不是一个指向对象的指针)。
2.鉴别原始数据类型的最佳方法是:typeof操作符。
3.原始类型具有原始方法(除null和undefined外),如:

1
2
3
4
5
6
7
8
9
10
11
var name = 'Cooling';
var lowercaseName = name.toLowerCase();//全部转换成小写字母
var firstLetter = name.charAt(0);//获得第一个字母C
var middleOfName = name.substring(2,5);//活动字母2-4

var count = 10;
var fixedCount = count.toFixed(2);//10.00
var hexCount = count.toString(16);//a

var flag = true;
var stringFlag = flag.toString();//"true"(字符串形式)

Ⅱ.undefined:

也只有一个值:undefined。
对尚未定义的变量,以及尚未声明的变量使用typeof,结果都是undefined。

但是注意:

1
2
3
var message;
alert(message);//undefinde
alert(age);//错误

对尚未声明的变量,只能进行一项操作,即typeof操作符检测其数据类型。(注意:虽然说对尚未声明的变量,还可以使用delete不会出现错误,但是这样做没有意义。同时,在严格模式下,这样做真的会导致错误。)

Ⅲ.null:

空类型,该原始类型只有一个值:null。
逻辑上null表示一个空对象的指针,使用typeof检测会返回object。
undefined的值实际上是派生自null的值的。

如:

1
alert(null == undefined);//true

对于null和undefined直接的差异:无论在什么情况下,都没有必要把一个变量的值显示的设置为undefined;但是对于null只要意在保存对象的变量还没有真正保存对象,就应该明确的让该变量保存null值(也就是说:声明空对象的时候应该将其赋值为null)。

Ⅳ.string

1.特性:

①使用.length访问字符串的长度
②字符串一旦创建,他们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新字符串填充该变量。如:

1
2
var lang = "Java";
lang = lang + "Script";

其先是创建了一个能够容纳10个字符的新字符串,然后在字符串中填充Java和Script,最后一步是销毁原来的Java和字符串Script。

2.类型转换:

①toString()
②String()
③eval()

Ⅴ.boolean

1.特性:

①true不一定为1,false也不一定为0;
②使用Boolean()进行转换,值为true的有:任何非空字符、任何非0数值、任何非空对象。
③使用Boolean()进行转换,值为false的有:空字符串、0、NaN、null、undefined。

Ⅵ.number

1.NaN检测:

通过isNaN()检测。

2.数值转换

①Number()
②parseInt()
③parseFloat()

##二.引用类型(object)