前端高频面试题

一 、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. 深拷贝 : 拷贝数据 ,  修改拷贝后的数据  原数据不会发生变化

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值