当前位置: 代码迷 >> 综合 >> Javascript底层原理总结
  详细解决方案

Javascript底层原理总结

热度:53   发布时间:2024-03-07 05:14:18.0

文档持续更新(问题及答案)

基础

  • 数据结构

  • JS堆栈的作用

  • 作用域链的理解

  • 变量提升、函数提升、浏览器解析机制
  • 定义一个变量当删除这个变量做了什么
  • 进程与线程、什么是单线程?和异步有何关系
  • 理解MVVM、MVC
  • 理解AMD、commonjs
  • 虚拟内存及缓冲区溢出
  • null和undefined的区别
  • ajax/axios/fetch的区别
  • Promise的原理
  • instanceof的原理
  • typeof的原理
  • 数组的扁平化
  • xhr对象
  • ES6 Proxy的概念
  • 闭包?运行时上下文里面包括什么?
  • 三栏布局
  • BFC布局原理

 

对象/原型链/类/继承

  • new本质
  • 理解this
  • 介绍下原型链
  • 理解构造函数下的prototype属性和实例化对象的__proto__属性的联系
  • Class与原型的关系
  • class类与继承、super()/class与原形链实现继承
  • Object.create/Object assign原理
  • 为什么Class 中constructor里面定义的属性是对象本身的属性?

事件

  • even loop事件循环
  • js事件流/事件节流
  • js如何处理防抖和节流
  • 事件委托以及优缺点
  • 回流/重绘

 

浏览器相关

  • 在地址栏输入url到最终展示界面期间发生了什么
  • http、https的区别
  • 同源策略、跨域及原理
  • 缓存及更新问题
  • 新一代的前端存储方案--indexedDB
  • webview与原生应用交互

 

DOM

  • 获取DOM节点的几个方法
  • 如何给DOM节点上添加事件

 

服务器端知识

 

实现

  • 函数柯里化
  • 冒泡排序的复杂度是多少?快排呢
  • 如何实现快排?
  • 如何实现二分查找?(迭代版和递归版,问那个效率高一些)
  • JavaScript递归转循环?
  • 如何用原生JS实现一个队列
  • 如何实现一个栈
  • 如何实现一个同花顺?写代码如何实现?(七张牌同一花色并且数字相连)
  • 数组 flat、去重及排序
  • 设计异步清空队列
  • 手写设计模式
  • 手写call
  • 手写bind
  • 手写apply
  • 手写promise
  • 手写instanceof
  • 手写typeof
  • 手写Object.create
  • 手写Object.assign()
  • 手写防抖
  • 手写节流
  相关解决方案