面试 一面 js 基础面题目
typeof 能判断哪些类型
- 识别所有值类型
- 识别函数
- 判断是否为引用类型(不可再发)
何时使用=== 何时使用==
值类型和应用类型的区别
手写深浅拷贝
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17const deepClone = (obj = {}) => {
if (typeof obj !== 'object' || obj == null) {
return obj
}
let res
if (obj instanceof Array) {
res = []
} else {
res = {}
}
for (const key in obj) {
if (Object.hasOwnProperty.call(obj, key)) {
res[key] = deepClone(obj[key])
}
}
return res
}如何准确判断一个变量是不是数组
手写一个简易的jquery,考虑插件(往原型上挂载)和拓展性(继承)
class 的原型本质 ,怎么理解
this的不用引用场景,如何取值
- 备注:this是执行是才能决定是那个
手写bind
实际开发中闭包的引用场景,举例说明
- 函数作为返回值,函数作为参数
- 备注:所有自由变量的查找,都是在定义的作用域向商超查找,不是执行
创建10个标签,点击弹出对应序号
dom是那种数据结构
dom操作的常用api
attr和property的区别
一次性插入多个节点,考虑性能
跨域:端口 协议 域名 不同为不同源,不同源访问为跨域
手写trim str.replace(‘/^\w+/‘,’’).replace(/\w+$/)
如何捕获js中的异常
- try cath 手动捕获
2. window.onerror 自动捕获
- try cath 手动捕获
window.onload 和 DOMContentLoaded 的区别
js 创建10个
<a>
标签,点击时弹出对应的序号手写节流 throttle 、防抖 debounce
promise 解决了什么问题
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 jiujue!
评论