Skip to content

前端桃园周刊第四期

Posted on:December 15, 2019 at 11:03 PM

一句话知识

npm v packageName versions

npm v packageName versions 查看包的所有版本,不加s 获取新版本。用途,安装了包但是 package.json 里面没有包,需要手动填入的时候。

typeof null 为什么返回 “object”?

不同的对象在底层都表示为二进制,在 JavaScript 中二进制前三位都为 0 的话会被判 断为 object 类型,null 的二进制表示是全 0,自然前三位也是 0,所以执行 typeof 时会返回“object”。

in 和 hasOwnProperty 区别

in 操作符会检查属性是否在对象及其 [[Prototype]] 原型链中。相比之下, hasOwnProperty(..) 只会检查属性是否在 myObject 对象中,不会检查 [[Prototype]] 链。

for in 和 for of 的区别

for in 用于对象的遍历,会遍历原型上可以枚举的属性

for of 用于遍历可迭代的对象,比如数组,因为数组里面是有迭代器的,凡是有迭代器的对象都可以用 for of 来遍历

对 constructor 的误解

对象的 constructor 实际上不是对象创建的时候有的,而是通过委托到 prototype 上找的。

function Foo() { /* .. */ }

Foo.prototype = { /* .. */ }; // 创建一个新原型对象

var a1 = new Foo();

a1.constructor === Foo; // false! a1.constructor === Object; // true!

可以看到 prototype 被替换之后,a1 的 constructor 已经不指向 Foo 了。

文章

仓库

  1. 一个博主 Tan li Hau
  2. openlayers。一个高性能、功能丰富的库,满足您所有的地图需求
  3. react-motion。解决 React 动画的库
  4. medium-unlimited。一个浏览器扩展,可无需会员免费读取medium.com文章。

其他