对象脑图总结
1、
是这样的,不同的对象的底层都表示为二进制,
在 js 中二进制前三位都为 0 的话会判断为 object 的类型, null 的二进制是全 0,自然前三位也是0
所以执行 typeof 时会返回 ‘object’
2、
var myArray = [1,2,3]; var it = myArray[Symbol.iterator](); it.next(); // {value: 1, done: false} it.next(); // {value: 2, done: false} it.next(); // {value: 3, done: false} it.next(); // {done: true}
3、
var myObj = { a:2, b:3 } Object.defineProperty(myObj, Symbol.iterator, { enumerable: false, writable: false, configurable: true, value: function() { var o = this; var idx = 0; var ks = Object.keys(o); return { next: function() { return { value: o[ks[idx++]], done: (idx > ks.length) } } } } }) var it = myObj[Symbol.iterator](); it.next(); // {value: 2, done: false} it.next(); // {value: 3, done: false} it.next(); // {done: true}