蚂蚁金服一面
上个周日找人内推的蚂蚁金服,感觉应该很难,确实也比较难。
内推流程:邮件链接——完善官网信息——在线测评——编程测试——面试中,今天晚上面的一面。
不知道蚂蚁金服面试还有在线编程。
面试官让写的编程题:
1.第一题
var a = { value:'a', next:b } var b = { value: 'b', next: c } a-b-c-d-a function checkCircle(node){ //在这里面判断node这个单链表节点所在的链表是否是一个环 }
自己当时也很紧张,只写了一点点,也没写出来,不过你不会面试官会引导你去写,有兴趣的同学欢迎评论交流,谢谢
这里,面试官问了我,怎么判断一个字符串(或者两个字符串)在一个数组里面。因为面试太紧张,所以还是没想出来。
现在我明白了一点思路:可以把a对象,a对象的下一个节点(next),再下一个节点,,,把整个链表的节点存储在一个数组里面,判断这个数组里面第一个值是否等于最后一个值。
估计面试官觉得我代码水平低,就没让我纯编程了。
2.深度遍历和广度遍历的理解
这个我只知道React中的虚拟dom算法中有这个,答了一些
3.关于this对象
var object = { name:'xiao', getName:function(){ console.log(this.name); } } object.getName();//xiao var doSth = object.getName; doSth();//无输出 doSth.call(object);//xiao
这个只是简单考的this对象,没问我闭包,也还好,这里问了我怎么让其输出xiao,我答的call,apply。
4.js中的原型式继承,Object.create()方法
var person = { name:'tom', friends:[] }; var person1 = Object.create(person); person1.name = 'tom1'; person1.friends.push('lucy'); console.log(person.name);//tom console.log(person1.name);//tom1 console.log(person.friends);//['lucy'] console.log(person1.friends);//['lucy']
问了我为什么会这么输出,问了用Object.create(person),person1和person的联系
5.事件冒泡机制
6.事件轮询(eventloop)
7.如果已经从服务器端请求到1000条数据到客户端,客户端怎么解决因数据量大页面卡顿的问题
在网上去搜了一些答案,贴个地址参考一下https://segmentfault.com/q/1010000009177441
8.有两个不同域名的网站,在Ajax请求中,跨域问题,JSONP跨域
9.跨域方式
10.项目中问了一点,怎么做的这个项目
11.CSS中,水平垂直居中问题怎么实现
总的来说,还是要去看数据结构,算法的什么的,js基础还是很重要。
把这些分享给大家,欢迎评论交流,也希望我有个二面吧。
#内推##春招##实习##面经##阿里巴巴#