Object.assign
作用:Object.assign可以实现对象的合并。
语法:Object.assign(target, ...sources)
for..of..: 它是es6新增的一个遍历方法,但只限于迭代器(iterator), 所以普通的对象用for..of遍历是会报错的。
可迭代的对象:
包括Array, Map, Set, String, TypedArray, arguments对象等等
map,forEach 匿名函数中的this都是指向window,
map()会分配内存空间存储新数组并返回,forEach()不会返回数据。
使用静态类型的优势
使用静态类型的劣势
iframe有什么优点、缺点
优点:
缺点:
Web Components 总的来说是提供一整套完善的封装机制来把 Web 组件化这个东西标准化,每个框架实现 的组件都统一标准地进行输入输出,这样可以更好推动组件的复用
包含四个部分
Custom Elements
HTML Imports
HTML Templates
Shadow DOM
变量提升:
JavaScript是单线程语言,所以执行肯定是按顺序执行。但是并不是逐行的分析和执行,而是一段一段地分析执行,会先进行编译阶段然后才是执行阶段。
在编译阶段阶段,代码真正执行前的几毫秒,会检测到所有的变量和函数声明,所有这些函数和变量声明都被添加到名为Lexical Environment的JavaScript数据结构内的内存中。所以这些变量和函数能在它们真正被声明之前使用。
HashMap 和 ArrayMap 有什么区别?
总结
综上所述,数据量比较小,并且需要频繁的使用Map存储数据的时候,推荐使用ArrayMap。 而数据量比较大的 时候,则推荐使用HashMap。
手写 instanceof:
其实 instanceof 主要的实现原理就是只要右边变量的 prototype 在左边变量的原型链上即可。
- function new_instance_of(child, parent) {
- let parentProto = parent.prototype,
- child_proto = child.__proto__;
- while(true) {
- if(child_proto === null)
- return false;
- if(child_proto === parentProto)
- return true;
- child_proto = child_proto.__proto__;
- }
- }
(来源:牛客网)