个人相关文档

4/20/2021 个人文档

# 第一次面试

# 自我介绍

# var let const的区别

  • var
  1. 有变量声明提升,可先使用后声明;
  2. 可重复声明;
  3. 函数作用域,无块级作用域。
  • let
  1. 有块级作用域;
  2. 不可重复声明;
  3. 不能先使用后声明,否则会出现暂时性死区;
  • const
  1. 有块级作用域;
  2. 不可重复声明;
  3. 不能先使用后声明,否则会出现暂时性死区;
  4. 声明的变量为常量不可更改,但是对象可以内的属性可以更改,因为存储的是对象的指针。

# var的优缺点(全局变量的优缺点)

  • 优点 var声明的全局变量,可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。

  • 缺点

  1. 过多的全局变量会占用较多的内存单元;
  2. 全局变量破坏了函数的封装性能;
  3. 全局变量使函数的代码可读性降低。由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都非常不利。

# 变量声明提升

1.用var声明的全局变量,会声明提升,在读取脚本的时候提升到顶部; 2.函数也会提升,可以先使用后声明。

# es6新增属性

  1. Symbol;
  2. let,const;
  3. 模版字符串;
  4. 对象字面量简写法;
  5. class类;
  6. 箭头函数;
  7. 函数默认参数;
  8. 解构赋值;
  9. 拓展运算符;
  10. import;
  11. reduce;
  12. forEach,map,filter;
  13. Set,Map,WeakMap,TypedArray。

# h5固定底部菜单的实现方式

h5的底部菜单的5种实现方式

# typeof

typeof 的实现原理是因为js底层对变量都是用二进制存储的存储,低位的前三位都为0则为对象,而null全为0所以判断也为object,010为浮点数,100字符串,110布尔,1为整数。

# instanceOf底层实现原理

instanceOf的底层原理是,通过判断左侧的实例的__proto__是否和右侧的构造函数的prototype相等,如果相等的话就返回true,如果不相等的话就返回false。

# this指向

this指向详解

# 实现new

# call apply bind

# Map Set

Set 和 Map 主要的应用场景在于 数据重组 和 数据储存

Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构

  1. 集合(Set) ES6 新增的一种新的数据结构,类似于数组,但成员是唯一且无序的,没有重复的值。

  2. 字典(Map) 集合 与 字典 的区别:

共同点:集合、字典 可以储存不重复的值 不同点:集合 是以 [value, value]的形式储存元素,字典 是以 [key, value] 的形式储存

# weakMap weakSet

  1. WeakSet WeakSet 对象允许你将弱引用对象储存在一个集合中
  • 成员都是弱引用,可以被垃圾回收机制回收,可以用来保存 DOM 节点,不容易造成内存泄漏。
  • WeakSet 不可迭代,因此不能被用在 for-of 等循环中。
  • WeakSet 没有 size 属性。
  1. WeakMap WeakMap 对象是一组键值对的集合,其中的键是弱引用对象,而值可以是任意。
  • 只接受对象作为键名(null 除外),不接受其他类型的值作为键名
  • 键名是弱引用,键值可以是任意的,键名所指向的对象可以被垃圾回收,此时键名是无效的
  • 不能遍历,方法有 get、set、has、delete

# 图片资源优化

  1. 使用雪碧图,减少http请求的占用;
  2. 图片懒加载;
  3. 图片预加载;
  4. 使用webp图片格式,优势是同等质量的前提下,webp的体积要比png等要小近百分之二十八左右。

# webp apng

webp是谷歌于2010年的时候提出的,在保证质量的情况下,体积相比png减少近百分之三十,缺点是兼容性比较差。 apng是Mozilla于2004年推出的,Apng格式是Png的动态形式,是png的扩展,支持半透明,没有锯齿问题,效果上更好。有损压缩后体积比gif小30%,而且没有锯齿。缺点就是兼容性比较差。

# vue从初始化实例 -> 挂载阶段怎么实现的

vue生命周期详细