js基础知识
1.事件委托
1.是事件委托就是 给父元素注册点击事件,委托给子元素让子元素来处理
2.事件委托原理就是 ==事件冒泡==
3.事件委托注意点 this是向父元素 e.target:是触发子元素的事件元素
事件委托场景 : 给动态新增元素注册委托事件
2.-localStorage与sessionStorage区别
-
1.相同点
作用一致 : 用于存储数据- 都是只能存储字符串类型数据(上限5MB)
-
2.不同点: 存储方式不同
localStorage : 硬盘存储(永久存储,页面关闭还在,存在硬盘)sessionStorage :内存存储(临时存储,页面关闭了就消失)
-
3.localStorage与sessionStorage如何存储引用类型数据(数组和对象)
- 转json存储
- 转json存储
3. NEW关键词做了那些事情?
3.1创建了一个空对象
3.2this是指向这个对象
3.3可以给对象赋值
3.4返回实列对象
4-原型链相关是什么?
4.1象访问原型链规则: 就近原则
4.2链作用:面向对象 继承
4.3象访问原型链遵守就近原则
就是简单来说,先访问自己,自己没有找原型,原型没有找原型的原型,直到原型链终点。 如果还找不到,属性则获取undefined,方法则报错xxx is not defined
5.call,apply,bind区别
5.1:他们三个有一个共同点就是都有可以修改this,第一个参数都是修改this
不同点
5.2传参方式:call是逐一传参,apply是数组,伪数组
5.3函数名.apply(修改的this,数组/伪数组)
5.4 执行机制不同:call和apply会立即执行函数,bind不会立即执行
5.5 bind会得到一个修改this的新函数
6-闭包
6.1 闭包 是 指使用其他函数内部变量的 函数 (闭包 = 函数 + 其他函数内部变量)
6.2闭包 = 函数使用外层函数的变量
6.3.闭包作用 : 扩展变量的作用范围
6.4闭包特点
闭包有三个特性:
1.函数嵌套函数
2.函数内部可以引用外部的参数和变量
3.参数和变量不会被垃圾回收机制回收
6.5闭包的优缺点:
优点:1.变量被保存起来没有被销毁,随时可以被调用
2.只有函数内部的子函数才能读取局部变量,可以避免全局污染
缺点:
如果闭包使用不当,就会导致变量不会被垃圾回收机制回收,造成内存泄露
## 7.浅拷贝与深拷贝
7.1浅拷贝简单来说就是 :拷贝地址, 修改拷贝后的数据原数据也会变化
7.2深拷贝拷贝数据, 修改拷贝后的数据原数据不会变化 从头到尾都可以拷:
8.for in与for of区别
8.1:功能不同: for-in是遍历数组的下标 for-of是遍历数组的元素
8.2:属性不同: for-in会遍历原型的属性 for-of不会遍历原型的属性
8.3:数据类型:for-in可以遍历Object类型 for-of不可以遍历Object类型