前端校招经验

本人大四,现在在某大厂实习,因为之前打算考研,周围的人都考研,想了想自己是考不上了,所以决定开始找工作,因为准备工作时间比较短,最开始面试的就是大厂,记得第一个是百度,是一个小姐姐面的,小姐姐问的问题都很简单,我也都知道答案,但是我说不出来!!!第一次有这种感觉,印象深刻的是它问我webpack用到了哪些loader,但是明明清楚会用到解析css,html,js,热更新的。。。。但是就是没有记住名字,因为那个webpack不就是打包工具吗,配置贼复杂,我每次都直接复制官网的配置,根本没留意叫什么名字,这就是吃亏吧。。。因为之前都是在网上看的视频,跟着老师的技术走的,所以课上练习的都是技术,让我把这个技术系统地说出来真的很为难我。。。
敲重点!!!面试的时候一定要从小公司开始面试,面试问过去问过来都是那些问题,要总结面试经验,俗话说,纸上得来终觉浅,不管怎么看面经,都没有亲自实践来的效果好。。一定要背面经(滚瓜烂熟),这样当被面试官问到的时候,会让面试官眼前一亮!

废话不多说。。。。
开始总结面试题吧,建议最开始要刷一些比较有难度的题,临近面试时疯狂背八股文,因为太早背,背了会忘的。
在这里插入图片描述
本人觉得比较复杂的最常考的就是 promise 和 排序算法。。。所以这篇博客不出意外我将会整理的出所有关于这两个东西的知识点,面试了这么多场,几乎每个面试官都会问这个问题
励志把promise源码背的滚瓜烂熟,用的得心应手。
排序算法让我倒着写也能写的出来

我打算按照 什么用 --> 怎么用 --> 底层原理 来记录完整学习过程。。。。

一、promise

为什么会有这个东西的存在?

在JavaScript的世界中,所有代码都是单线程执行的。
由于这个“缺陷”,导致JavaScript的所有网络操作,浏览器事件,都必须是异步执行。异步执行可以用回调函数实现

想象一下这个场景,现在有一个数,每隔13ms会增加一个数值(不固定)
如果没有promise,你就需要这样写,这还是函数逻辑比较简单的时候,当函数逻辑复杂的时候,逻辑可想而知。。。。于是乎就出现了promise

function animate(height, x, callback) {
  setTimeout(function () {
    windows.height = height + x;
    callback && callback()
  }, 13);
}
let height = 50;
animate(height, 100, function () {
  animate(height, 200, function () {
    animate(height, 300, function () {
      animate(height, 200, function () {
        animate(height, 200, function () {
          animate(height, 180, function () {
            animate(height, 220, function () {
              animate(height, 200, function () {
                console.log("over");
              })
            })
          })
        })
      })
    }) 
  })
});

1、基础概念

Promise 是一个对象,它代表了一个异步操作的最终完成或者失败。因为大多数人仅仅是使用已创建的 Promise 实例对象

在使用 Promise 时,会有以下约定:
- 在本轮 事件循环 运行完成之前,回调函数是不会被调用的。
- 即使异步操作已经完成(成功或失败),在这之后通过 then() 添加的回调函数也会被调用。
- 通过多次调用 then() 可以添加多个回调函数,它们会按照插入顺序进行执行。
Promise 很棒的一点就是链式调用

var p1 = new Promise(test);
var p2 = p1.then(function (result) {
    console.log('成功:' + result);
});
var p3 = p2.catch(function (reason) {
    console.log('失败:' + reason);
});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值