自学前端已经有很长一段时间了,工作还没落实,再加上生活中的些与不如意,各种落差,让人心情急躁。再补充点之前读你不知道的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,就是原型链的终点