js 常见问题
📄️ 何为变量提升?
var 和 let const 的区别
📄️ 手写深度比较 isEqual
手写深度比较 isEqual,实现下面需求
📄️ split 和 join 的区别
📄️ 数组的 pop push unshift shift 分别是什么
数组的 pop push unshift shift
📄️ 数组 slice 和 splice 的区别
区别
📄️ [10,20,30].map(parseInt)返回的结果是什么?
参考
📄️ ajax 请求 get 和 post 的区别
区别
📄️ 函数 call 和 apply 的区别
📄️ 事件代理(委托)是什么?
事件代理
📄️ 闭包是什么,有什么特性?有什么负面影响?
回顾
📄️ 如何阻止事件冒泡和默认行为?
事件
📄️ 查找,添加,删除,移动 DOM 节点的方法?
https://lzwdot.com/blog/archives/26041
📄️ 如何减少 DOM 操作?
比如
📄️ 解释 jsonp 原理,为何不是真的 ajax ?
回顾
📄️ document load 和 ready 的区别
📄️ == 和 === 的区别
区别
📄️ 函数声明和函数表达式的区别
区别
📄️ new Object() 和 Object.create 的区别
区别
📄️ 关于 this 的场景题
📄️ 关于作用域和自由变量的场景题
第一个,感觉不容易
📄️ 判断字符串以字母开头,后面字母数字下划线,长度 6-30
一些简单的
📄️ 手写字符串 trim 方法,保证浏览器的兼容性
📄️ 如何获取多个数字中的最大值
手写函数
📄️ 如何用 JS 实现继承
继承
📄️ 如何捕获 JS 程序中的异常?
第一种 try catch
📄️ 什么是 JSON ?
JSON
📄️ 获取当前页面 url 参数
比如:http://localhost/test/test.html?a=100&b=200#c=300
📄️ 将 url 参数解析为 JS 对象
还是比如:http://localhost/test/test.html?a=100&b=200#c=300
📄️ 手写数组 flatern,考虑多层级
数组 flatern 的意思:\[1,2,\[3,4\]\] =>\[1,2,3,4\]
📄️ 数组去重,考虑计算效率
数组去重的方法
📄️ 手写深拷贝,注意 Object.assign 不是深拷贝
深拷贝函数
📄️ 介绍一下 RAF(requestAnimationFrame)
requestAnimationFrame
📄️ 前端性能如何优化?一般从哪几个方面考虑?
回顾
📄️ Map 和 Set-有序和无序
有序和无序,先看个例子
📄️ WeakMap 和 WeakSet
两者的特点
📄️ 数组 reduce 的用法
reduce 用法