小米前端实习生一面 1.20

1.自我介绍
2.介绍一下mcp, skills
3.了解react哪些状态管理库
4.对话是sse还是什么?是用fetch还是EventSource?
5.ts中的any 和 unknown讲一讲
6.是直接用组件库的组件还是自己封装了一些别的

7.代码输出题1
function main() {
    {
        var a = 1
        let b = 2
    }
    console.log(a);
    console.log(b);
}
main()
console.log(a);

8.什么是块级作用域 全局作用域 函数作用域

9.代码输出题2
for (var i = 0;i < 5;i++) {
    setTimeout(() => {
        console.log(i);
    }, 100);
}

10.代码输出题3
for (var i = 0; i < 5; i++){
    function printText(temp) {
        setTimeout(() => {
            console.log(temp);
        }, 100);
    }
    printText(i)
}

11.代码输出题4
for(var i = 0;i < 5;i++){
    function printText(temp) {
        var temp = i
        setTimeout(() => {
            console.log(temp);
        }, 100);
    }
    printText(i)
}

12.代码输出题5
for(var i = 0;i < 5;i++){
    function printText(temp) {
        setTimeout(() => {
            var temp = i
            console.log(temp);
        }, 100);
    }
    printText(i)
}

13.点击控制台输出题
export default function App() {
    const [count, setCount] = useState(0)
    console.log('render',count)
    return (
        <div>
            <h1>{count}</h1>
             {
                setCount(count + 1)
                setTimeout(() =&gt; console.log('setTimeout', count), 1000)
            }}
            &gt;
            +1
        
        </div>
    )
}
//这个组件点击按钮后,控制台的输出顺序和值如下:
// 1. render 1 (组件重新渲染, count 更新为 1)
// 2. setTimeout 0 (1秒后输出,注意这里是 0 而不是 1)

14.算法:给有序数组arr = [-4, -1, 0, 3, 5],返回平方后的排序
// 有序数组平方后排序
const arr = [-4, -1, 0, 3, 5]
function solution(arr) {
    const len = arr.length
    const result = new Array(len)
    let left = 0
    let right = len - 1
    let index = len - 1
    while (left &lt;= right) {
        if (arr[left] * arr[left] &gt; arr[right] * arr[right]) {
            result[index] = arr[left] * arr[left]
            left++
        } else {
            result[index] = arr[right] * arr[right]
            right--
        }
        index--
    }
    return result
}
console.log(solution(arr));

15.反问
#发面经攒人品#
全部评论
前端如此深奥学习了
点赞 回复 分享
发布于 01-21 19:39 陕西
已老实
点赞 回复 分享
发布于 01-21 12:52 北京
根本看不懂一点点
点赞 回复 分享
发布于 01-21 12:19 江苏

相关推荐

已凉凉&nbsp;答得最烂的一集&nbsp;只答上一半1.&nbsp;自我介绍2.&nbsp;考了一个&nbsp;this指针&nbsp;箭头函数&nbsp;函数作用域的引用```jsa&nbsp;=&nbsp;function(){return&nbsp;{b:function&nbsp;(){console.log(this)},c:()=&gt;{console.log(this)}}}d&nbsp;=&nbsp;a.call({})console.log(d.b(),d.c())```3.&nbsp;依旧代码输出&nbsp;let&nbsp;var&nbsp;块级作用域```js//第一个let&nbsp;x&nbsp;=&nbsp;'hello'(function(){concole.log(x)var&nbsp;x&nbsp;=&nbsp;'111'})()//第二个var&nbsp;x&nbsp;=&nbsp;'hello'(function(){console.log(x)let&nbsp;x&nbsp;=&nbsp;'111'})```4.&nbsp;依旧代码输出&nbsp;考了一个事件循环```jslet&nbsp;wait&nbsp;=&nbsp;(ms)&nbsp;=&gt;&nbsp;{return&nbsp;new&nbsp;Promise(resolve&nbsp;=&gt;&nbsp;{setTimeout(()&nbsp;=&gt;&nbsp;{resolve()console.log(1)},&nbsp;ms)console.log(0)})}wait(0).then(()=&gt;{console.log(6)})Promise.resolve().then(()&nbsp;=&gt;&nbsp;{console.log(2)}).then(()&nbsp;=&gt;&nbsp;{console.log(3)})Promise.resolve().then(()&nbsp;=&gt;&nbsp;{console.log(4)})console.log(5)```5.&nbsp;讲讲移动端适配不同屏幕有哪些常见方案?&nbsp;用过哪些?&nbsp;每种方案都有哪些缺陷?&nbsp;应该怎么解决6.&nbsp;讲讲常见的header字段?&nbsp;都是用来干嘛的?&nbsp;在那些场景会用到?7.&nbsp;讲讲数组有哪些常见的api&nbsp;都有什么用&nbsp;哪些会修改原数组哪些不会修改原数组?8.&nbsp;算法题&nbsp;考了不同路径&nbsp;当时犯蠢了用递归做的&nbsp;没写出来
查看8道真题和解析
点赞 评论 收藏
分享
评论
2
15
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务