读书笔记

自学前端已经有很长一段时间了,工作还没落实,再加上生活中的些与不如意,各种落差,让人心情急躁。再补充点之前读你不知道的JavaScript的读书笔记,和感悟。

1、在数组上应用for..in循环有时候会产生出人意料的结果,因为这种枚举不止会包含所有的数值索引还会包括所有可枚举属性(for...in循环遍历的结果是JSON对象的KEY,或者是数组的下标),例如:

var arr = [];
arr[0] = 1;
arr[1] = 2;
arr["bar"] = "foo";//这个即使可枚举属性

最好只在对象上使用for...in循环,如果要遍历数组就使用传统的for循环来遍历数值索引。

2、ES6新增一种迭代方法,直接遍历值而不是数组下标,for...of循环语法(for...of遍历的结果是value值):

var myArr = [1,2,3];
for(var x of myArr){
  console.log(x);  
}

原型继承:

function Foo(){
  /*...*/
}
var foo = new Foo();
Foo.prototype === foo.__proto__;//Foo的引用的_proto_属性([[prototype]]),始终指向Foo.prototype的原型对象
Foo.prototype.constructor === Foo;//true,Foo的原型对象的construct始终指向Foo本身
Foo.prototype.__proto__ === Object.prototype;//函数的原型对象的__proto__属性最终指向Object的原型对象
Object.prototype.__proto__ === null;//Object的原型对象的__proto__属性最终指向null,就是原型链的终点

 

posted @ 2017-06-16 01:04  MesopotamiazZ  阅读(122)  评论(0编辑  收藏  举报