JavaScript主要类型
- string
- number
- boolean
- null
- undefined
- object
JavaScript内置对象
- String
- Number
- Boolean
- Object
- Function
- Array
- Date
- RegExp
- Error
在JavaScript中,内置对象指数一些内置函数,可以当作构造函数(由new产生的函数调用)来使用,从而可以构造一个对应子类型的新对象。
var strPrimitive = "I am a string";
console.log(typeof strPrimitive); // "string"
console.log(strPrimitive instanceof String); // false
var strObject = new String("I am a string");
console.log(typeof strObject); // "object"
console.log(strObject instanceof String); // true
console.log(Object.prototype.toString.call( strObject )); //[Object String]
在引擎内部,对象的值的存储方式时多种多样的,一般并不会存在对象容器内部。存储在对象容器内部的是这些属性的名称,它们就像指针一样,指向这些值真正的存储位置。
对象中的函数
function foo() {
console.log("foo")
}
var someFoo = foo; // 对foo的变量引用
var myObject = {
someFoo: foo
}
foo; // function foo(){...}
someFoo; // function foo(){...}
myObject.someFoo; // function foo(){...}
someFoo和myObject.someFoo只是对于同一个函数的不同引用,并不能说明这个函数是特别的或者“属于”某个对象。如果foo()定义时,内部有一个this引用,那这两个函数引用的唯一区别就是myObject.someFoo中的this会被隐式绑定到一个对象。
var muObject = {
foo: function() {
console.log("foo");
}
}
var someFoo = muObject.foo;
someFoo; // function foo(){...}
myObject.foo; // function foo(){...}