一 、webpai
1.1 - 事件委托面试点:
1. 什么是事件委托.
给父元素注册事件 , 委托给子元素处理
2. 事件委托原理: 事件冒泡
3. 事件委托注意点:
(1). this : 指向父元素
(2). e.target: 指向触发事件的子元素
4. 事件委托场景 : 给动态新增元素注册委托事件
1.2 - localStorage与sessionStorage区别
1.相同点:
(1) 作用一致: 都是用于存储数据
(2) 都是只能存储字符串类型数据(上限5MB)
2.不同点:
localStorage: 硬盘存储 ( 永久存储 页面关闭还存在硬盘中 )
sessionStorage: 内存存储 ( 临时存储 页面关闭就消失 )
3. localStorage 和 sessionStorage 如何存储引用类型数据 ( 数组和对象 )
: 转json存储
二 、js高级
1.1 - new关键字做了哪些事情
(1) 创建空对象
(2) this指向这个对象
(3) 给这个对象赋值
(4) 返回这个对象
1.2 - 原型链相关
1.原型链的作用: 面向对象 --->继承
2.对象访问原型链规则: 就近原则
先访问自己 自己没有就找原型 原型没有找原型的原型 直接原型链的终点 如果还找不到 属性则获取undefined 方法则报错 xxx is not defined
1.3 - 如何判断this指向
this : 谁 调用 我 , 我就指向谁
普通函数: 函数名() ------> window
构造函数: new 函数名() ------> new创建的实例对象
对象方法: 对象名. 方法名() ------> 对象
1.4 - call apply bind 区别
共同点: 都可以修改this 第一个参数都是修改的this
不同点
:(1) 传参方式不同: call 是逐一传参 , apply 是数组 / 伪数组传参
函数名 . call ( 修改的this , 参数1 , 参数2 )
函数名 . apply ( 修改的this , 数组 / 伪数组 )
(2) 执行机制不同 : call 和 apply 会立即执行函数 , bind不会立即执行
bind 会得到一个修改 this 后的新函数
1.5 - 如何判断数据类型
方法一 : typeof ( 有两种数据类型无法检测: null array )
方法二 : Object . prototype . toString . call ( 数据 )
1.6 - 闭包 和 递归
1. 闭包
(1) 闭包: 使用其他函数内部变量的 函数 ( 闭包 = 函数 + 其他函数内部变量 )
闭包 = 函数 + 上下文引用
(2) 作用: 解决全局变量污染
2. 递归
(1) 递归: 在函数内部调用自己
(2) 作用: a. 浅拷贝 和 深拷贝 b.遍历dom树
1.7 - 浅拷贝 和 深拷贝
1.浅拷贝 : 拷贝地址 , 修改拷贝后的数据 原数据也会发生变化
2. 深拷贝 : 拷贝数据 , 修改拷贝后的数据 原数据不会发生变化