第一次面试前端_一年半开发经验的前端小白第一次跳槽面试

1. 深度克隆对象的几种简单的方法:答 ,JSON互译 assign(错误,之前使用assign写了很多代码 实现的深克隆,时间久了忘了,然后答上去给自己挖坑)

2.JSON互译的方法有什么缺陷,答:symbol对象与promise对象无法克隆 (面试官指出--还有引用循环对象无法克隆);

3.怎么判断一个对象是引用循环对象 //(脑子懵了,连判断引用地址都忘了,面试官提示了下,然后写了一段简单递归判断);

答:

function fn(obj){ if(typeof obj !== 'object')return; for(let k in obj){ if(obj[k] === obj){ //引用循环 }else{ fn(obj[k]) } } }

我这里问了下面试官是否需要判断跨层级引用循环,然后面试官说你说说思路(答 - 》深度优选遍历- 但是没想出来怎么保存上级状态

4.浏览器的缓存协议有哪些(答:协商缓存和最终缓存)

5.缓存区别是什么(协商缓存用固定的时间来判断缓存是否更新,最终缓存用缓存时间|Etag(资源字符码)来判断;

6.new完之后执行了哪些操作

答:在构造函数内创建了this对象,然后将this对象返回出去(没答全-》后来追问下再答,把他的__proto__.constructor指向这个构造函数)

7.追问怎么在构造函数内判断这是使用new操作符来构建的

答:又支支吾吾想半天(答是用 instanceof 来判断

8.问了下闭包是如何产生的(当内部作用域的变量被保存到了外部作用域时就产生了闭包)

9.问了下闭包的使用场景和我的使用案例

(代码模块化 ,保存变量, 答完过一阵才想到还经常用到 funtion (a){ return funtion (option) { //操作a } }这种写法;

答:在工作中碰到过一次父组件向子组件传值时,需要传递的对象是一个promise对象,由于父组件在传值时有深度克隆的过程,所以使用function将promise对象保存

出去,在子组件中接收;

10.问闭包产生的副作用- 回答内存泄漏

11.追问,js底层怎么处理这种内存泄漏 (答不知道。。。

最后面试官问我有什么想问他的,我说觉得面试结果咋样

面试官说回答得不够干脆,准备的不够充分(确实。。。面试的时候就很紧张,每次都在努力的想面试官想考的点,结果每次都没get到

--------------------

觉得应该挂了 = _ =!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值