小米前端日常实习一面
base:北京
投递时间:2.27牛客网上投的、2.28初筛通过、3.3一面
1.自我介绍
2.实习做的是什么工作?
3.为什么会选择前端?
4.除了redux这种状态管理工具之外还了解其它的状态管理工具吗? √
5.react hooks的出现解决了什么问题?使用过哪些hooks?什么时候会用useMemo?√
6.hooks可不可以放到if语句内?hooks里面的依赖项对数据类型有什么特殊的要求? ×
7.代码分析题 react生命周期 ×
function Child() { useEffect(() => { console.log('Child'); }, []) return <h1>child</h1>; } function Father() { useEffect(() => { console.log('Father'); }, []) return <Child/>; } function App() { useEffect(() => { console.log('App'); }, []) return <Father/>;
输出 Child Father App
8.代码分析题 react渲染 state/props ×
function Child() { console.log('Child'); return <div>Child</div>; } function Father(props) { const [num, setNum] = React.useState(0); return ( <div onClick={() => {setNum(num + 1)}}> {num} //{props.children} <Child/> </div> ); } function App() { return ( <Father> <Child/> </Father> ); } const rootEl = document.querySelector("#root"); ReactDOM.render(<App/>, rootEl)
9.Vue的v-for为什么要加key值 说得不具体
10.Vue 的父子组件生命周期钩子函数执行顺序 半对
11.Vue组件通信的方式 √
12.var arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10]; 编写一个程序将数组扁平化并去除其中重复部分数据,最终得到一个升序且不重复的数组 √
13.输出结果题 宏任务 微任务 √
async function async1() { console.log("async1 start"); await async2(); console.log("async1 end"); } async function async2() { console.log("async2"); } console.log("script start"); setTimeout(function () { console.log("setTimeout"); }, 0); async1(); new Promise(function (resolve) { console.log("promise1"); resolve(); }).then(function () { console.log("promise2"); }); console.log("script end");
14.输出结果题 √
for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 1); } for (let i = 0; i < 3; i++) { setTimeout(() => console.log(i), 1); }
15.输出结果题 this指向搞错了
const shape = { radius: 10, diameter() { return this.radius * 2; }, perimeter: () => 2 * Math.PI * this.radius, }; console.log(shape.diameter()); console.log(shape.perimeter());
16.浏览器原理了解过吗,通过什么方式减少重排重绘 √
17.了解过ES6吗,Set、Map、WeakMap的区别 ×
18.如何判断数据类型是数组 √
19.做过服务端的项目吗?连过数据库吗?含糊过去了...
20.手写代码 ×
给你一个字符串 s,找到 s 中最长的回文子串。 如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。(要求用动态规划法实现)
输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。
输入:s = "cbbd"输出:"bb"
反问环节
如何提升能力,结合具体场景把原理性的东西看透,融合自己所学的东西
公司团队主要在做什么
面试官巨温柔!!有些问题回答不上来或者回答地不具体就略过去不再细问。当场出的结果
前端实习面试记录,分享给正在找实习的小伙伴~