阿里巴巴面经(新零售事业群-CBU技术部)
笔试
/**
* 1. 查找落单的数字
* 描述:给定一个非空的数字数组,数组有且只有一个非重复项,实现一个方法获取落单项
* 示例:
* getSingleNumber([1, 2, 1, 2, 0]); // 0
* getSingleNumber([0, 1, 0, 0]); // 1
* getSingleNumber([1, 2, 3, 1, 2]); // 3
*/
function getSingleNumber(numbers) {
let result=null;
numbers.forEach((item,index) =>{
if(numbers.indexOf(item) === numbers.lastIndexOf(item)){
result = item
}
})
return result;
}
/**
* 2. 找出数组中第k大和第m大的数字相加之和
* 说明:实现一个方法,找出数组中第k大的和第m大的数字相加之和
* 示例:
* let arr = [1,2,4,4,3,5], k = 2, m = 4
* findTopSum(arr, k, m); // 第2大的数是4,出现2次,第4大的是2,出现1次,所以结果为10
*/
function findTopSum(arr, k, m) {
if(arr.length < k || arr.length < m) return null
let newArr = [...new Set(arr)].sort((a,b) =>a-b)
let result = null
//确定重复次数
let firstValue = newArr[newArr.length-k]
let lastValue = newArr[newArr.length-m]
//保存最大数,最后结果应减去重复的一次
let firstTemp = firstValue
let lastTemp = lastValue
arr.forEach(res =>{
if(res === firstValue){
firstValue = firstValue+res
}
if(res === lastValue){
lastValue = lastValue+res
}
})
result = firstValue-firstTemp+lastValue-lastTemp
return result
}
2.26 一面(电话面)
- 为什么选择前端学习,不选择物联网专业课学习
- 学习前端的方式
- 技术含量最高的项目
- 事件委托机制
- bind,call,apply用法及区别
- 数组的原生方法
- slice会改变原始数组吗
- element 的buttun组件采用的是原生元素实现还是div(可能会再次问起)
- vue2.0和vue3.0的区别
- 深拷贝和浅拷贝
- Object.assigned方法属于深拷贝还是浅拷贝(没答上来,这里既不属于深拷贝也不属于浅拷贝,关键在于对象的属性是否又为一个对象)
- 快速排序算法
- 前端跨域 (讲了jsonp,和Access-Control-Allow-Origin,iframe和domain)
- webpack工作原理 (给自己挖坑了,主动问了下面试官)
3.5 二面(电话面)
项目相关
实习相关
CSRF,XSS攻击及防范
-
正则表达式 正整数表示
- 正整数表示 / [1-9][0-9]* /
- *和*?的区别
- 正则的贪婪,惰性
- \w \s 意义
splice参数问题
谈了下自身的优势
3.18 三面(电话面)
- 最体现自己技术价值的项目
- 最具有开发意义的项目
- 项目来源
- 智慧AI酒店业务难点
- 站在一个CTO的角度,这个项目的难点
- 自身的优点以及缺点
- 前后端联合开发所遇到的问题
- 团队组建及角色
3.29 四面(电话面)
- 项目分工
- 微信小程序watch监听实现方式与场景
- 学习前端的方式
- 最近学习到的印象最深刻的东西
- 技术上解决最难的问题
4.1 HR面 (电话面)
- 实习经历,项目经历
- 团队成长经历及角色担当
- 团队负责人的优势
- 团队变化
- 团队技术总结及报告
- 评价自己在团队中的技术影响力
- 技术差异的来源
- 怎么看待物联网专业
- 物联网专业的核心课程
- 物联网带来的核心价值在哪儿及具体实例
- 前端学习方式及渠道
- 聊聊自己满意的项目
- 项目开发背景
- 选择公司的判断及条件
阿里巴巴面经(大文娱事业群-业务技术部)
4.14 电话面(杭州) 不知道算几面了,她把我前面所有的面试记录拿着的
- 自我介绍
- 为什么选择物联网专业
- 介绍一下IOT及应用特点
- 介绍项目
- 团队规划及组成
- 布局方式,常用的布局
- DOM文档流,详细介绍position的各个定位属性
- 如何实现一个左边固定宽带,右边自适应的布局(我是答的用flex进行设置)
- 团队开发流程
- 前端工具的流程化管理 (面试官应该是想问模块化,webpack相关。我全部答git去了)
- 谈一谈微信小程序项目
- 微信小程序开发和常见H5开发区别
- 微信小程序可以直接操作DOM吗,可以直接用jquery操作吗?
- vue中组件通信的方式 (props,$emit,vuex)
- 如何实现订阅者-发布者模式 (观察者模式)
4.15 电话面(北京) 部门总监面
- 大学学科有哪些计算机专业的学科
- 聊一下堆栈数据结构
- 后进先出的数据结构是谁 (我懵了,不就是栈嘛)
- 聊一下链表的数据结构
- 描述一下网络的五层模型
- 那再聊一下OSI七层模型
- 说一下快速排序吧
- DOM content loaded时间之前页面的渲染状态
- reflow,repaint 是在DOM树和CSS规则树合并之前还是之后
- 聊一聊JavaScript里面的event loop
- css 选择器的优先级
- js里面的null和undifined的理解
- null == undifined 为什么? 为什么为true?
- null === undifined 为什么为false?
- JavaScript中this的作用域的特点以及使用上的注意事项
- canvas标签用来做什么的
- 页面平滑滚动的实现方式
- 如何理解vant-webapp 框架的优缺点
- 微信小程序的原生开发方式是如何实现的(我裂了)
- display的flex属性是如何实现的 (我又裂了)
- 花了许多时间解决的问题
4.23 HR面 (钉钉视频面)
兄弟们,这个实在是记不住了,视频没办法回溯,就是常规的一些HR面试问题,大多与项目相关,还有就是大学经历,注意一点就是为什么选择这个公司。