ECMAScript 中包含两种不同的数据类型:基本类型和引用类型
基本类型包括:Undefined,Null,Boolean,Number,String
引用类型包括:Object,Array,Function,Date 等
理清一些容易混淆的地方:
1. 无论基本类型,还是引用类型,都是类型,都是虚的。就像 Undefined 类型的值是 undefined,它才具有实际意义,用应用价值
2. Object 类型和其构造函数 Object() ,容易使人产生一种想法:它们是有联系的。然而,并没有联系!Object() 只是 Object引用类型的构造函数!此外, Object 引用类型有两种创建实例的方式,Object() 构造函数和对象字面量表示法:
var person = new Object();
person.name = "abc";
person.age = 123;
var person = {
name: "abc",
age: 123
}
再次强调一遍,不要认为 Object() 构造函数是 Object 引用类型 + () 构成的!
下面讲一下 Function
在 ECMAScript 中,每个函数都是对象,都是 Function 类型的实例
既然是对象,函数就会有属性和方法
函数属性: length 和 prototype
函数方法: apply( ) 和 call( )
函数内部属性: arguments 和 this (函数体内调用)
三种定义函数的方式:
function sum(num1, num2) { // 函数声明语法
return num1 + num2;
}
var sum = function(num1, num2) { // 函数表达式语法
return num1 + num2;
}
var sum = new Function("num1","num2","return num1 + num2"); // Function构造函数
第三种语法,对于理解“函数是对象,函数名是指针”是非常直观的!