手写深拷贝【JS面试题】

作者: 前端小野2分类: 野生技能协会 发布时间: 2021-03-30 09:00:02 浏览:27847 次

手写深拷贝【JS面试题】

火车撞上挥手的云:
哈默,我平时主要用newdata=JSON.parse(JSON.stringify(oldArray))操作[响指][爱心]

【回复】json没办法序列化函数,会自动忽略undefined和symbol,无法处理循环引用,但是间接高效
【回复】能解决大多数,但是函数不行哦
【回复】回复 @SAKURA_ditto :函数需要深拷贝的场景不多吧
波多野结炜:
function deepClone(obj) { let cloneObj = Array.isArray(obj) ? 【】 : {} if (obj instanceof Object) { for (let key in obj) { if (obj.hasOwnProperty(key)) { // 只拷贝自身属性,原型上的不拷贝 cloneObj【key】 = isObject(obj【key】) ? deepClone(obj【key】) : obj【key】 } } } else { return obj } return cloneObj } function isObject(obj) { return typeof(obj) === 'object' && typeof obj !== 'null' } 稍稍优化

狂魔的爹爹hh:
你第一次不就是把对象直接赋值了吗,哪是什么浅拷贝啊[辣眼睛]

【回复】基本类型没有深浅拷贝的说法的,直接存在栈里的
【回复】第一次是直接赋值,根本不是浅拷贝,浅拷贝对于第一层简单数据类型不影响原数据
【回复】我也觉得,等号赋值是吧原变量里存的引用地址赋值给了新变量,两个变量现在指向的是同一个对象,个人觉得这不算浅拷贝。
bbvjmn:
前天笔试遇到了手写数组排序和求中位数的题,还不让用sort[大哭]

【回复】冒泡 快速 插入 这些排序算法挺简单的 还是学一下吧
【回复】抽时间学学js数据结构和算法吧,想进大厂要学的东西还很多
【回复】嘿嘿,后面可以讲一讲~
但丁小魔王:
up主来个正则和replace的灵活运用呗[笑哭],之前面试一堆处理字符串的题,让现场敲出来

倭寇朱不得house:
这个hasOwnProperty方法要判断这里面拷贝是否是自有属性还是继承属性是吗

【回复】回复 @WEB小野森森-2 : 但是加不加hasOwnProperty感觉效果没区别啊,没理解加不加什么用
【回复】对的,自身属性返回true,原形上的属性返回false~
【回复】回复 @黄金大鸡块 :拷贝主要是拷贝对象本身的属性,要规避掉原型上自定义的属性。所以要判断是不是对象自身的属性,认真学习Object相关的方法,加油[打call][打call]
tonyzhangcn:
如果数据是Number,String 类型的这么拷贝有问题吧,例如 a=new Number(7), 用这个方法是不行的。

崩溃大陆路:
真不错,适合我看 学会啦 嘿嘿 老师真棒

没有面罩的头盔:
要是能把视频分门别类的整合成一个合计就好了

【回复】这周末做成合集,可以先关注我哦~
野skr:
卧槽我怎么绕不过来循环里面递归的弯儿啊

知识分享官 编程 WEB JS JAVASCRIPT 经验分享 前端 VUE WEB前端 打卡挑战

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!