js基础知识

110 阅读3分钟

js基础知识

1.事件委托

1.是事件委托就是 给父元素注册点击事件,委托给子元素让子元素来处理

2.事件委托原理就是 ==事件冒泡==

3.事件委托注意点 this是向父元素 e.target:是触发子元素的事件元素

事件委托场景 : 给动态新增元素注册委托事件


2.-localStorage与sessionStorage区别
  • 1.相同点

    • 作用一致 : 用于存储数据
    • 都是只能存储字符串类型数据(上限5MB)
  • 2.不同点: 存储方式不同

    • localStorage : 硬盘存储 (永久存储,页面关闭还在,存在硬盘)
    • sessionStorage :内存存储 (临时存储,页面关闭了就消失)
  • 3.localStorage与sessionStorage如何存储引用类型数据(数组和对象)

    • 转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类型

总结:如果只想要属性值/元素,使用for-of效率更高