前端手撕JS面试题

说一下闭包

https://blog.csdn.net/weixin_45822171/article/details/122317790

如何实现一个深拷贝

  在开始之前我们需要先了解一下什么是浅拷贝和深拷贝,其实深拷贝和浅拷贝都是针对的引用类型,JS中的变量类型分为值类型(基本类型)和引用类型;对值类型进行复制操作会对值进行一份拷贝,而对引用类型赋值,则会进行地址的拷贝,最终两个变量指向同一份数据

// 基本类型
var a = 1;
var b = a;
a = 2;
console.log(a, b); // 2, 1 ,a b指向不同的数据
 
// 引用类型指向同一份数据
var a = {c: 1};
var b = a;
a.c = 2;
console.log(a.c, b.c); // 2, 2 全是2,a b指向同一份数据

1.扩展运算符

缺点:这个方法只能实现第一层,当有多层的时候还是浅拷贝

let obj = {
    name:"张三",
    age:18,
}

let obj1= {...obj}
obj1.name="王五"
console.log(obj)
console.log(obj1)

2.JSON.parse(JSON.stringify())

缺点:该方法并不会拷贝内部函数(对象内的方法)

let obj = {
    name:"张三",
    age:18,
   say(){
         console.log("say hello")
        }
}

let obj1= JSON.parse(JSON.stringify(obj));
obj1.name="王五"
console.log(obj)
console.log(obj1)

3.利用递归函数实现(循环遍历法

缺点:不能进行重复引用,否则会造成死循环。

ajax是什么,怎么实现的

https://blog.csdn.net/weixin_54242901/article/details/119960055

防抖和节流

防抖效果

1秒内。只要有新的触发产生:从0开始计时。

节流效果

1秒内。只要有新的触发产生:无效,除非之前的操作执行完。

https://blog.csdn.net/weixin_46419373/article/details/108330981

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值