# JS/TS/网络相关

# 一些重要的基础

# 变量类型及基本方法

  • 值类型6种和引用类型4种,null是引用类型吗
  • 基本数据类型和复杂数据类型存储有什么区别
  • typeof能否判断正确类型,Object.prototype.call()呢
  • 3 个判断数组的方法 (opens new window)
  • instanceof能否判断数据类型,实现的原理是什么,手写实现
  • for of , for in 和 forEach,map 的区别
  • 如何判断一个变量是不是数组
  • 类数组和数组有什么区别,类数组如何转换成数组
  • 你用过数组的哪些方法 MDN Array (opens new window)
  • 数组常用方法 (opens new window)
  • 哪些方法能改变原数组,哪些不会
  • 深浅拷贝,赋值与拷贝的区别 赋值与深浅拷贝 (opens new window)
  • 数组浅拷贝有哪三种方法
  • == 和 === 有什么区别,类型转换的规则
  • Object.is和 == === 有什么区别
  • 了解object原型上的方法 Object 构造器及原型上的方法 (opens new window)
  • JS隐式转换:类型转换:字符串拼接,==运算符(除了null之外,其余全部用===),用!!可以判断truly,falsely变量
  • 为什么 0.1 + 0.2 != 0.3 ?

# 原型与原型链

  • 什么是原型链,原型链解决了什么问题
  • prototype与__proto__有什么区别
  • 如何使用ES5实现类与继承,类与继承 (opens new window)
  • constructor有什么作用:没有实际作用,但应尽量让对象的constructor指向其构造函数
  • 原型,instanceof原理和实现

# 作用域与闭包

# JS异步知识

  • 为什么定时器打印出来的都是同一个数,如何解决:立即执行函数/let
  • 宏任务微任务如何理解
  • 你知道哪些回调函数
  • JS 事件队列/循环(Event Loop) (opens new window) 包含对宏任务,Promise, 计时器的理解
  • Promise有哪些优点,如何解决回调地狱问题,怎么写
  • Promise有哪几种状态,Promise有什么缺点
  • Promise是立即执行函数,一旦创建立即执行。then里面的函数是异步执行的
  • async, Promise, generator之间的关系。手写Promise
  • 如何使用Promise发送请求AJAX (opens new window)
  • async,await如何理解与使用

# ES6

# 性能优化

# 手写题

# TS(Step2)

  • TS相比JS有什么优点
  • Typescript 认知 (opens new window)
  • 接口的继承 extends
  • 泛型
  • 类型断言
  • Omit作用:过滤属性,Pick选取属性
  • interface和type区别,类型别名和接口很像,但是类型别名不能被 extends 和 implements 。不过类型别名可以很好的表示交叉类型和联合类型。
  • 并且type可以用于表示基本类型

# JS进阶(Step2)

# 浏览器/网络

  • 事件流分为哪几个阶段?事件代理优点Event事件 (opens new window)
  • 跨域的实现方案,JSONP如何使用,CORS怎么配置,Nginx反向代理(proxy_pass)
  • websocket
  • H5浏览器存储方案,怎么操作
  • 从输入网址到页面渲染经历了什么 (opens new window)
  • 浏览器缓存优先级,强缓存与协商缓存浏览器渲染原理
  • TCP 与 HTTP区别
  • HTTP相关知识http 知识体系 (opens new window)
  • Get和Post区别
  • 如何对网站的文件和资源进行优化(文件合并,文件压缩,gzip 压缩 js css, 文件使用缓存...)
  • 什么是同源策略,跨域实现的几种方式
  • 安全问题:XSS, CORS
  • 什么是雪碧图,如何快速合并雪碧图
  • 垃圾回收机制
  • 滚动加载 10 万条数据,dom 卡,如何解决
LastEditTime: 2022/5/14 17:27:14