Javascript代码可以对数据按照一定的语法进行操作,所以javascript设计规范中规定了两种数据类型:

第一种是存储数据的类别,具体为:

1. Undefined,

Undefined类型只有一个值,任何没有被赋值的变量的值都是undefined

如图:我们打开一个node.exe的新窗口:

clip_image001

2. Null

Null类型只有一个值,就是null

typeof null //"object",chrome浏览器对这行代码的实现是把null作为Object类

3. Boolean,

Boolean类型有两个值,为true和false,分别对应真和假

var b = true,c = false;

console.log(Boolean()) // false

console.log(Boolean(false)) // false

console.log(Boolean(true)) // true

console.log(new Boolean(true)) //返回Boolean包装对象,是object类型

typeof(new Boolean()) // "object"

4. String,

String类型指的是由0个或多个无符号整型字符组成的字符串类型,由双引号和单引号

console.log('123') //字符串类型 ‘123“

console.log("abc") //字符串类型 ‘abc“

console.log(String('123')) //字符串类型 ‘abc“

console.log(new String("abc")) //字符串的包装对象,是Object类型

typeof(new String("abc")) //"object"

typeof("abc") //"string"

5. Number,

clip_image002

var i = 1;

i.constructor //在chrome中的返回值为function Number() { [native code] }

6. Object.

Object类型是javascript中的对象类型,有函数对象Function,数组对象Array,日期Date对象等一系列Object类型的对象

根据面向对象的要求,Object类型在javascript语言的设计上应该要保证Object不仅是一系列属性和方法的集合,

同时还要保证它和其他object的各种关系的实现,比如继承

Object类型在语言设计的角度存在2种类型的成员:

1. javascript语言中可见属性和方法

2. javascript设计规定的内部属性

如图:

clip_image004

o对象中有我们定义的name属性,函数getName,还有一个属性__proto__,且是Object对象的引用

这里__proto__属于内部属性,各个浏览器实现javascript语言规范实现有区别,并不是每个浏览器都可见

其中设计规定的内部属性分为两种

1. 所有Object都共同存在的

clip_image006

2. 仅仅在某些类中存在的

clip_image008

注:这些属性不需要掌握只是为后面对javascript的理解提供理论依据

Typeof操作符例子附图:

clip_image010

第二种为语义描述类别,不会直接出现在javascript代码中,知道即可

1. Reference(引用)

Reference类型的定义是:一个申明名称的绑定。顾名思义,它的类型中至少有,而且必须有两个属性:名称和绑定值

绑定的类型能且只能是上文第一种类别提到的6类,外加第二种语义类型中的environment record类型

通过使用关键字var定义一个javascript变量,从而得到一个Reference(引用),如下

var ref; //其中ref就是一个引用类型,有两个属性,第一个是引用名称为字符串ref,另一个是默认绑定的值undefined

ref = {} //将{}构造的对象的“地址”绑定到aa的绑定值属性上,即将undefined对象地址替换为{}对象地址

其中引号中的地址有可能并不是地址,用地址只是为了形象的说明它的实现方式

如果说所有的设计原则,设计模式都体现在两个字“间接”上,那么引用就是面向对象,甚至任何高级语言内置的第一个抽象方式

我们对绑定对象的Reference的任何操作都直接作用在了该对象上,而不是直接对该对象进行操作

2. List,

3. Completion,

4. Property

5. Descriptor,

6. Property Identifier,

7. Lexical Environment,

8. Environment Record.

 posted on 2013-10-23 16:59  求美  阅读(294)  评论(0编辑  收藏  举报