null, { }, undefined, [native co

2018-11-15  本文已影响0人  黑色的五叶草

1. null表示"没有对象",即该处不应该有值。典型用法是:

Object.getPrototypeOf(Object.prototype)
// null

2. undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

var i;
i // undefined

function f(x){console.log(x)}
f() // undefined

var  o = new Object();
o.p // undefined

var x = f();
x // undefined

3. { }与null的区别

Object.create(null)没有继承任何原型方法,也就是说它的原型链没有上一层,作为原型链的终点。

浏览器对{ }和null返回:

console.log(Object.create({}).toString);   // function toString() { [native code] }
console.log(Object.create(null).toString); // undefined
a = Object.create(null)
{}  No properties
b = {}
{}__proto__: Object

null没有属性只代表一个空的对象,字面量{ }会继承Object的方法

4. function xx() { [native code] }

Object.create({}).toString; // function toString() { [native code] }
toString没有执行,返回的function toString() { [native code] }并不是JS代码,是浏览器对toString方法的实现,可能是用C++代码编写的

上一篇下一篇

猜你喜欢

热点阅读