个人秋招面经——蚂蚁支付宝体验技术部

博主目前在蚂蚁集团-体验技术部,AntV/S2 是博主所在团队的开源项目——多维交叉分析表格,欢迎使用,感谢到 S2 github 仓库点赞 star,有任何关于前端面试、就业、技术问题都可给在文章后留言。

一面-杭州(2021/7/31)

一、算法:大数相加。

二、知乎导航栏的设计思路。

三、DOM的事件代理(事件委托)。

事件代理: 利用事件冒泡,指定一个事件处理程序,就可以管理某一类型的所有事件。也就是把一个或一组元素的响应事件(click、keydown。。。)的函数委托到它的父层或更外层元素上,真正绑定事件的是外层元素,不是目标元素。
应用场景:

  • 有一个列表,列表里面有很多列表项,点击某一个列表项响应一个事件,可以直接在父级元素ul上面绑定。
  • 虽然列表里面的列表项不多,但是需要动态的添加或删除列表元素,添加一个列表元素要绑定事件,删除一个列表元素要解绑事件,可以直接在父级元素ul上面绑定。

优点:

  • 减少整个页面所需要的内存,提高整体性能。
  • 动态绑定,减少重复工作。

四、vue的数据监听原理。

五、跨域。

六、闭包,浏览器怎么解决内存泄漏。

在JS中,变量的作用域属于函数作用域,在函数执行后,作用域会被清理,内存也随之回收,但由于闭包是建立在一个函数中的子函数,由于可以访问上级作用域的原因,即使上级函数执行完,作用域也不会被销毁。
解决内存泄漏: 在退出函数之前,将不使用的局部变量全部删除。
vue里面的内存泄漏总结

七、http状态码。

八、垃圾回收机制(引用计数、标记清除的原理)

  1. 引用计数: 申明一个变量,将一个引用类型的值赋给这个变量,那么这个变量的引用就加1;如果这个变量的值又指向另外一个值,或者说这个变量被重新赋值了,那么以上引用类型的值的引用就减1;如此一来,该引用类型的值的引用次数变为0,垃圾回收器会清理引用次数为0的值并回收其内存。注意: 对于循环引用的值无法回收。
  2. 标记清除: 垃圾回收器再运行时会给存储在内存中的所有变量加上标记;当变量进入执行环境时,它会去掉执行环境中的变量以及被执行环境中的变量引用的标记;当离开执行环境时,再次被加上的标记的变量就是准备被删除的变量。

还是一面-成都(2021/8/6)

一、JS数据类型

二、怎么理解JS中的万物皆对象

对于引用类型Array、Function都可以被看作对象,而每当读取一个基本类型的时候,js内部会自动创建一个基本类型包装对象,以让我们调用一些方法来操作。

三、var let const的区别

四、let a = 1; 和 let b = new Number(1); 的区别

a是原始类型,b是包装对象。原始类型在计算时的属性和方法是对应的包装对象的,所有a和b在使用层面其实是没有区别的,都可以使用toFixd()、toString()等方法。

五、less 和 sass 的区别,好处

less和sass都是一种动态样式语言,具有混入、参数混入、嵌套、运算、名字空间、作用域等共性。
区别: 主要区别是实现方式上:less是基于JavsScript,是在客户端处理的,而sass是基于Ruby的,是在服务端处理的,因此sass解析js更快一些;关于变量的区别:less用@,sass用$。

六、GET和POST的区别,PUT和POST的区别

Get 和 Post 请求的区别:
(1)Get 请求的参数是连接在 url 中的,而 Post 请求的参数是存放在请求体(Request body)中的;
(2)由于 url 的长度是有限的,所以 Get 请求的参数是有限的,而 Post 请求的参数是不受限制的;
(3)相比 Post 请求,Get 请求更不安全,因为 Get 请求的参数是暴露在 url 中的,不能用来传递敏感信息;
(4)Get 请求会被浏览器主动缓存,而 Post 不会,除非手动设置;
(5)Get 请求的参数会被浏览器存在历史记录中,而 Post 请求不会;
(6)Get 请求只能进行 url 编码,而 Post 请求可以进行多种方式的编码;
(7)浏览器发送 Get 请求会将 header 和 data 一起发送给服务器,服务器响应成功返回200状态码;而 Post 请求先将 header 发送给服务器,服务器返回100状态码,然后再将 data 发送给服务器,服务器响应成功返回200状态码;
(8)Get 请求在浏览器回退是无害的,无持续的副作用,如进行搜索;而 Post 会重新提交请求,有副作用,如往数据库添加数据行。

Get 请求一般用于获取、查询数据,不会修改服务器上的数据;Post 请求一般用于修改服务器上的数据,上传数据等,或者涉及到敏感信息的传输,如用户登录。

Put 和 Post的区别:
Put和Post都能更改指定URI的语义,但Put被认为是幂等的方法(幂等: 同一个方法执行多次,产生的效果是一样的。),但Post不是幂等的方法,对于Put请求:如果两个请求相同,后一个请求会把前一个请求覆盖掉,而Post请求不会覆盖,所以Put请求一帮用于修改资源,而Post请求一般用于增加资源。例:编辑文件和上传文件。

七、nginx的使用

八、跨域

九、数组的map()和forEach()的区别

都是对数组中的每个元素依次执行回调函数,map()不会改变原数组,会返回一个新的数组;forEach()会改变原数组,返回undefined。

十、echarts的使用

十一、做的一件对项目提升比较大的事

canvas

二面(2021/8/9)

一、介绍实习的pms系统,自己做了哪些工作。

二、文件上传的流程。

三、项目开发怎么使用git的,git的常用操作,git fetch和git pull的区别。

四、webpack的原理,项目中使用了webpack的哪些功能,写plugin的流程。

五、介绍石油可视化项目,echarts的使用,业界还有哪些可视化工具。

六、HTTP的各种请求方式,应用场景。

七、补笔试:

  1. 非递归实现
  2. 比较版本号
  3. 求平方根
  4. 写css:左边固定,右边自适应

三面(2021/8/17)

一、怎么接触、学习前端的

二、实习对自己有哪些提升

三、石油项目遇到了哪些难点

。。。
反问:数据中台、React

HR面(2021/8/19)

一、介绍印象深刻的项目

二、实习情况

三、。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值