202108-09 js

148 阅读2分钟
  1. 基本类型 数字 string 布尔 undefined null object

  2. typeof判断简单类型,instanceof,prototype.tostring.call,Array.isArray判断是对象还是数组

  3. 垃圾回收机制,变量不被引用自动回收,计数清除法,标记清除

  4. cookie会发送给服务器,session关闭页面失效,local永久保存

  5. 链式调用就是把函数挂载到this上再return出去

  6. 数组去重 ...new Set() 元素挂载到对象,根据对象属性的唯一性。 indexof

  7. new一个对象就是把对象的proto指到方法的prototype上再调用call改变this指向

  8. 防抖一定时间内触发一次,节流只计算最后一次。通过闭包,额外变量来判断是否为null

  9. 事件绑定:addEventlinster第三个参数为是否冒泡,阻止冒泡stopPropagation,定义多个方法不覆盖之前的。

  10. 队列先进先出,栈后进先出 阻止冒泡 e.preventDefault

  11. 事件循环遇到await不会立即执行后面的console,await后面的代码当成then里面的操作

  12. js加载阻塞解决 script添加async属性

  13. 跨域,协议域名端口一个不一致就是跨域,jsonp请求,设置datatype为jsonp,后端把数据放在回调函数里。原理是script不受限制,access-control *号代表所有请求都接受。proxy

  14. 反转字符串,split转数组,reverse反转数组,join拼接

  15. promisee.all指都成功返回一个数组

  16. commonjs是require,module.export是运行时解析,是值的拷贝

  17. es6的import和export是加载时解析,是值的引用

  18. 队列先进先出,所以eventloop才会由同步到微任务到宏仁务依次输出,只代表输出顺序,加载还是同步宏微

  19. foreach和map的区别map返回新数组,foreach无返回值,map比foreach快

  20. proto是隐式的,prototype是显式的,属性共享的,是函数独有的。

  21. js异步编程方式 callback promise async yeild next()