小米暑期一面
问答环节
- 自我介绍并讲一下为什么选择前端。
- 如果我完全不懂低代码,如何向我介绍你的低代码项目?
- 低代码是怎么修改你的 JSON Schema 的?
- TS 中 any 和 unknown 的区别?
- 为什么你的断言不直接用
as any
,而是通过unknown
进行中间转换? - 讲一讲函数作用域、全局作用域、静态作用域和动态作用域。
- 使用 useEffect 过程中有没有遇到过 ESlint 报错缺少依赖项的警告?
- 感觉你把 React 中 useEffect 和 Vue 中的 watch 的作用认为是类似的。
- 「反问」对前端学习有什么建议?
代码题
判断下列两段代码各自输出什么?
jsfunction main() { { var a = 1; const b = 2; } console.log(a); console.log(b); } main(); console.log(a);
jsconst text = "Hello"; function printText() { console.log(text); } function main() { const text = "World"; printText(); console.log(text); } main();
下面四段代码各自输出什么?
jsfor (var i = 0; i < 5; i++) { setTimeout(() => { console.log(i); }, 1000); } for (var i = 0; i < 5; i++) { function print(i) { setTimeout(() => { console.log(i); }, 1000); } print(i); } for (var i = 0; i < 5; i++) { function printText() { var temp = i; setTimeout(() => { console.log(temp); }, 100); } printText(); } for (var i = 0; i < 5; i++) { function printText() { setTimeout(() => { var temp = i; console.log(temp); }, 100); } printText(); }
点击按钮后会发生什么?
jsximport { useState } from "react"; export default function App() { const [count, setCount] = useState(0); console.log("render", count); const handleClick = () => { setCount((prevCount) => prevCount + 1); setTimeout(() => { console.log("setTimeout", count); }, 1000); }; return ( <div> <h1>{count}</h1> <button onClick={handleClick}>+1</button> </div> ); }
手撕有序数组的平方。