这份前端面试题能帮助的不止是你Promise问题,还能拿到大厂(腾讯、百度、阿里)实习offer

前端秋招面试核心考点与实战复盘:从简历到Offer的完整指南 前端开发岗位的求职竞争日益激烈,面试不仅考察JavaScript基础、浏览器原理、网络协议等核心概念,更关注对框架思想与工程化实践的深度理解。从原型链、事件循环到Vue/React响应式机制,再到HTTP缓存、模块化演进,这些底层原理的技术价值在于帮助开发者解决真实业务场景中的性能与架构问题。无论是简历项目深挖,还是手写题与开放性问题,面试官始终围绕“原理理解+工程落地”进行追问。秋招准备需要系统梳理技术脉络,通过实战复盘将知识转化为可迁移的解题能力。本文结合真实面试经历,拆解高频考点与应答策略,为前端求职 阅读详情

前言

小编之前写过一篇:前端面试之问到promise怎么办?,温故而知新哦

怎么今天又来一篇与promise的文章呢 ,哈哈哈哈小伙伴们不要急着离开哈,是因为认识了一个去找实习的同学,聊了实习找的怎样了,让我印象最深刻的就是她讲promise的面试题,她说一面结束后就知道凉凉了,并且要是有机会很想和面试官说一句:面试官对不起!我终于会了Promise!

大概是这么个情况,所以呀小编又来讲讲promise,后面带有面试题。同学参加的是某大厂面试,大家看看面试题及同学的回答就知道这位同学有多难受了。

面试题

  • CSS 实现水平垂直居中
  • flex的属性
  • CSS transition的实现效果和有哪些属性
  • CSS 实现沿Y轴旋转360度 (直接自爆了 CSS不行…麻了)
  • 好,那来点JS 基本数据类型有哪些 用什么判断
  • 数组怎么判断
  • 引用类型和基本类型的区别
  • 什么是栈?什么是堆?
  • 手写 翻转字符串
  • 手写 Sum(1,2,3)的累加(argument)(我以为是柯里化,面试官笑了一下,脑筋不要这么死嘛)
  • 箭头函数和普通函数的区别(上题忘记了argument,面试官特意问这个问题提醒我,奈何基础太差救不起来了…泪目)
  • 数组去重的方法
  • 图片懒加载
  • 跨域产生的原因,同源策略是什么
  • 说说你了解的解决办法(只说了JSONP和CORS)
  • Cookie、sessionStorage、localStorage的区别
  • get 和 post 的区别 (只说了传参方式和功能不同,面试官问还有吗 其他的不知道了…)
  • 问了一下项目,react
  • 对ES6的了解 (Promise果真逃不了…)
  • let var const的区别
  • 知道Promise嘛?聊聊对Promise的理解?(说了一下Promise对象代表一个异步操作,有三种状态,状态转变为单向…)
  • 那它是为了解决什么问题的?(emmm当异步返回值又需要等待另一个异步就会嵌套回调,Promise可以解决这个回调地狱问题)
  • 那它是如何解决回调地狱的?(Promise对象内部是同步的,内部得到内部值后进行调用.then的异步操作,可以一直.then .then …)
  • 好,你说可以一直.then .then …那它是如何实现一直.then 的?(emmm… 这个.then链式调用就是…额这个…)
  • Promise有哪些方法 all和race区别是什么
  • 具体说一下 .catch() 和 reject (…我人麻了…)

结束环节

  • 问了面试官对CSS的理解(必须但非重要,前端的核心还是尽量一比一还原设计稿,只有写好了页面才能考虑交互)

  • 如何学习(基础是最重要的,CSS和JS要注重实践,盖房子最重要的还是地基,所有的框架源码,组件等都基于CSS和JS)

  • 曾经是如何度过这个过程的(多做项目,在项目中学习理解每个细节,再次告诫我基础的重要性)

Promise概述

Promise是ES6新增的引用类型,可以通过new来进行实例化对象。Promise内部包含着异步的操作。

new Promise(fn)

Promise.resolve(fn)

这两种方式都会返回一个 Promise 对象。

  • Promise 有三种状态: 等待态(Pending)、执行态(Fulfilled)和拒绝态(Rejected),且Promise 必须为三种状态之一只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。
  • 状态只能由 Pending 变为 Fulfilled 或由 Pending 变为 Rejected ,且状态改变之后不会在发生变化,会一直保持这个状态。
  • Pending 变为 Fulfilled 会得到一个私有value,Pending 变为 Rejected会得到一个私有reason,当Promise达到了Fulfilled或Rejected时,执行的异步代码会接收到这个value或reason。

知道了这些,我们可以得到下面的代码:

实现原理

class Promise {
    constructor() {
        this.state = 'pending'  // 初始化 未完成状态 
        // 成功的值
        this.value = undefined;
        // 失败的原因
        this.reason = undefined;
    }
}
复制代码

基本用法

Promise状态只能在内部进行操作,内部操作在Promise执行器函数执行。Promise必须接受一个函数作为参数,我们称该函数为执行器函数,执行器函数又包含resolve和reject两个参数,它们是两个函数。

  • resolve : 将Promise对象的状态从 Pending(进行中) 变为 Fulfilled(已成功)
  • reject : 将Promise对象的状态从 Pending(进行中) 变为 Rejected(已失败),并抛出错误。

使用例子

let p1 = new Promise((resolve,reject) => {
    resolve(value);
})
setTimeout(() => {
    console.log((p1)); // Promise {<fulfilled>: undefined}
},1)   

let p2 = new Promise((resolve,reject) => {
    reject(reason);
})
setTimeout(() => {
    console.log((p2)); // Promise {<rejected>: undefined}
},1) 
复制代码

实现原理

  • p1 resolve为成功,接收参数value,状态改变为fulfilled,不可再次改变。
  • p2 reject为失败,接收参数reason,状态改变为rejected,不可再次改变。
  • 如果executor执行器函数执行报错,直接执行reject。

所以得到如下代码:

class Promise{
    constructor(executor){
      // 初始化state为等待态
      this.state = 'pending';
      // 成功的值
      this.value = undefined;
      // 失败的原因
      this.reason = undefined;
      let resolve = value => {
         console.log(value);
        if (this.state === 'pending') {
          // resolve调用后,state转化为成功态
          console.log('fulfilled 状态被执行');
          this.state = 'fulfilled';
          // 储存成功的值
          this.value = value;
        }
      };
      let reject = reason => {
         console.log(reason);
        if (this.state === 'pending') {
          // reject调用后,state转化为失败态
          console.log('rejected 状态被执行');
          this.state = 'rejected';
          // 储存失败的原因
          this.reason = reason;
        }
      };
      // 如果 执行器函数 执行报错,直接执行reject
      try{
        executor(resolve, reject);
      } catch (err) {
        reject(err);
      }
    }
  }
复制代码

检验一下上述代码咯:

class Promise{...} // 上述代码

new Promise((resolve, reject) => {
    console.log(0);
    setTimeout(() => {
        resolve(10) // 1
        // reject('JS我不爱你了') // 2
        // 可能有错误
        // throw new Error('是你的错') // 3    
    }, 1000)
})
复制代码
  • 当执行代码1时输出为 0 后一秒输出 10 和 fulfilled 状态被执行;
  • 当执行代码2时输出为 0 后一秒输出 我不爱你了 和 rejected 状态被执行
  • 当执行代码3时 抛出错误 是你的错

.then方法

promise.then(onFulfilled, onRejected)

  • 初始化Promise时,执行器函数已经改变了Promise的状态。且执行器函数是同步执行的。异步操作返回的数据(成功的值和失败的原因)可以交给.then处理,为Promise实例提供处理程序。
  • Promise实例生成以后,可以用then方法分别指定resolved状态和rejected状态的回调函数。这两个函数onFulfilled,onRejected都是可选的,不一定要提供。如果提供,则会Promise分别进入resolved状态和rejected状态时执行。
  • 而且任何传给then方法的非函数类型参数都会被静默忽略。
  • then 方法必须返回一个新的 promise 对象(实现链式调用的关键)

实现原理

  • Promise只能转换最终状态一次,所以onFulfilled和onRejected两个参数的操作是互斥的
  • 当状态state为fulfilled,则执行onFulfilled,传入this.value。当状态state为rejected,则执行onRejected,传入this.reason
class Promise {
    constructor(executor) {
        this.state = 'pending'  // 初始化 未完成状态 
        // 成功的值
        this.value = undefined;
        // 失败的原因
        this.reason = undefined;

        // .then 立即执行后 state为pengding  把.then保存起来
        this.onResolvedCallbacks = [];
        this.onRejectedCallbacks = [];

        // 把异步任务 把结果交给 resolve
        let resolve = (value) => {
            if (this.state === 'pending') {
                console.log('fulfilled 状态被执行');
                this.value = value
                this.state = 'fulfilled'
                // onFulfilled 要执行一次
                this.onResolvedCallbacks.forEach(fn => fn());
            }
        }
        let reject = (reason) => {
            if (this.state === 'pending') {
                console.log('rejected 状态被执行');
                this.reason = reason
                this.state = 'rejected'
                this.onRejectedCallbacks.forEach(fn => fn());
            }
        }
        try {
            executor(resolve, reject)
        }
        catch (e) {
            reject(err)
        }
    }
    // 一个promise解决了后(完成状态转移,把控制权交出来)
    then(onFulfilled, onRejected) {
        if (this.state == 'pending') {
            this.onResolvedCallbacks.push(() => {
                onFulfilled(this.value)
            })
            this.onRejectedCallbacks.push(() => {
                onRejected(this.reason)
            })
        }
        console.log('then');
        // 状态为fulfilled  执行成功  传入成功后的回调  把执行权转移
        if (this.state == 'fulfiiied') {
            onFulfilled(this.value);
        }
        // 状态为rejected 执行失败  传入失败后的回调  把执行权转移
        if (this.state == 'rejected') {
            onRejected(this.reason)
        }
    }
}
let p1 = new Promise((resolve, reject) => {
    console.log(0);
    setTimeout(() => {      
        // resolve(10)
        reject('JS我不爱你了')
        console.log('setTimeout');    
    }, 1000)
}).then(null,(data) => {
    console.log(data, '++++++++++');
})
复制代码
0
then
rejected 状态被执行
JS我不爱你了 ++++++++++
setTimeout
复制代码

当resolve在setTomeout内执行,then时state还是pending等待状态 我们就需要在then调用的时候,将成功和失败存到各自的数组,一旦reject或者resolve,就调用它们。

现可以异步实现了,但是还是不能链式调用啊? 为保证 then 函数链式调用,then 需要返回 promise 实例,再把这个promise返回的值传入下一个then中。

Promise的各种方法

Promise.prototype.catch()

catch 异常处理函数,处理前面回调中可能抛出的异常。只接收一个参数onRejected处理程序。它相当于调用Promise.prototype.then(null,onRejected),所以它也会返回一个新的Promise

  • 例如
let p = new Promise((resolve, reject) => {
    setTimeout(() => {
        resolve(10)  
    }, 1000)
}).then(() => {
       throw Error("1123")
}).catch((err) => {
    console.log(err);
})
.then(() => {
    console.log('异常捕获后可以继续.then');
})
复制代码

当第一个.then的异常被捕获后可以继续执行。

Promise.all()

Promise.all()创建的Promise会在这一组Promise全部解决后在解决。也就是说会等待所有的promise程序都返回结果之后执行后续的程序。返回一个新的Promise。

  • 例如
let p1 = new Promise((resolve, reject) => {  
    resolve('success1')
})

let p2 = new Promise((resolve, reject) => {  
    resolve('success1')
})
// let p3 = Promise.reject('failed3')
Promise.all([p1, p2]).then((result) => {  
    console.log(result)   // ['success1', 'success2']             

}).catch((error) => {  
    console.log(error)
})
// Promise.all([p1,p3,p2]).then((result) => {  
//     console.log(result)
// }).catch((error) => {  
//     console.log(error) //  'failed3'     
//     
// })
复制代码

有上述例子得到,all的性质:

  • 如果所有都成功,则合成Promise的返回值就是所有子Promise的返回值数组。
  • 如果有一个失败,那么第一个失败的会把自己的理由作为合成Promise的失败理由。

Promise.race()

Promise.race()是一组集合中最先解决或最先拒绝的Promise,返回一个新的Promise。

  • 例如
let p1 = new Promise((resolve, reject) => {  
    setTimeout(() => {    
        resolve('success1')  
    },1000)
})

let p2 = new Promise((resolve, reject) => {  
    setTimeout(() => {    
        reject('failed2')  
    }, 1500)
})

Promise.race([p1, p2]).then((result) => {  
    console.log(result)
}).catch((error) => {  
    console.log(error)  //  'success1'    
})
复制代码

有上述例子得到,race的性质:

  • 无论如何,最先执行完成的,就执行相应后面的.then或者.catch。谁先以谁作为回调
    小编总结的这份269页的大厂前端面试题资料,Promise相关的面试题也其中,小伙伴们请点击这里领取噢

总结

上面的Promise就总结到这里,有什么理解也可以在下方评论区一起交流学习。

面试可以让自己发现更多的知识盲点,从而促进自己学习,大家一起加油冲呀!!

这篇文章小伙伴们也别忘了点赞+评论噢!!!

前端面试经历(字节、滴滴、虎牙),讲真的还挺难,前端大厂面试题总汇得看看 小编整理最近了小伙伴中具有代表性的面试经历及面试题,他们的情况小编就不多说了,一起看看他们面试中都遇到了什么问题。 字节 一面 刚开始就问我的项目,问的很详细。 webpack 提高构建速度的方式 loader 输入什么产出什么 ? webpack 原理 webpack 动态加载的原理 webpack 热更新 如何写一个 webpack plugin AST 的应用 如何解析一个 html 文本,还是考 AST babel 原理,怎么写 babel 插件 如何设计一个沙盒 sandbox ? 小程序的 A 阅读详情

相关推荐

怎样判断面试者是否有扎实的前端基础?

最近朋友去面试,得到反馈说 ta 的“前端基础”不好。我突然觉得这是一个很有趣的问题,比如对于武术家来说,你让他扎一个小时马步,就知道他基础好不好;对于歌手,你让他视唱视奏一下,就知道他基础好不好。 而技术面试,大家往往都是最开始面的几家公司会炮灰,然后随着面试过程不断刷题或者背概念,在背下来 HTTP协议概念,网络攻击,异步标准之后,终于在面到第 N 家的时候拿到了 offer。 问题是,短短几个礼拜的时间其实并不会增加多少知识和经验,但是就能轻易的从“基础不好”变成”基础扎实“,到底是我们对”基础“的定

Kepler_II的博客 3506

函数柯里化实现sum(1)(2)(3)(4)...无限累加

1.参数确定(累加参数确定) 如: function sum(a,b,c,d){ return a+b+c+d } 确定参数的函数柯里化实现 function sum(a,b,c,d){ return a+b+c+d } function curry(fn){ return function sum(...args){ if(args.length<fn.length){ // 判断接受的参数是否小于函数的参数长度 return

wingxabc的博客 3931

声音特征提取--Demon谱分析(舰船水声)

不同频带的DEMON谱线相互之间也不一样,有的频带内会发生线谱遗失,有的频带内的线谱并不是真正的谱线。当舰船航速达到某个极限时,螺旋桨的高速旋转将产生空化噪声,由螺旋桨产生的一系列周期信号被空化噪声调制,在频域上表现为将低频的离散线谱线性搬移到较高频率噪声所处的频率周围,这些周期信号在频域是离散的线谱系列,对应舰船的轴频、叶频以及谐波频率,由于舰船辐射噪声低频部分还有其它噪声源,很难从低频段直接提取出螺旋桨产生的线谱系列,而是要先对高频段的调制信号进行解调,通过低通滤波得到信号的低频包络谱,即。

qq_52631753的博客 6504

函数sum(1)(2)(3)(4)...(n)实现无限累加

一开始看到这个题目我最先想到了闭包, 可能会这么写: function sum(a){ return function(b){ return function(c){ return function(d){ ...... } } } } 或许也会这么写: let ...

FHHHC的博客 668

2022-04-06 RK3566 上调试百兆以太网卡YT8512C 调试记录

一、原理图 二、dts &gmac1_clkin{ clock-frequency = <50000000>; status = "okay"; }; &gmac1 { phy-mode = "rmii"; clock_in_out = "input"; snps,reset-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; snps,reset-active-low; sn...

海月汐辰 1万+

BLDC六步换相驱动实战:从霍尔真值表到PWM调速的代码实现

本文详细解析了BLDC六步换相驱动原理,从霍尔真值表解读到PWM调速的代码实现,提供了基于STM32的实战方案。重点介绍了霍尔信号解码、换相状态机设计以及PWM动态调速策略,帮助开发者快速掌握无刷电机驱动技术。

weixin_28273593的博客 210

实现sum(1,2,3,4,...),实现add(1)(2)(3),arguments.callee

1,实现sum(1,2,3,4,...) 考察的是arguments的理解,rguments对象,无需指出参数名,就可以访问他们 代码: function sum(){ var result=0; for(var i=0;i result+=arguments[i]; } return result; } console.log(sum(1,2,3,4,5)); //15

Prince_fmx的博客 5178

Archery通过OpenResty代理转发后登录一直提示Forbidden

测试几遍,连账号密码都没用验证,因为不管输什么都是提示Forbidden。找到配置文件settings.py,下面命令可到配置文件路径。回到页面刷新,随便输入个账号密码,验证失败证明请求成功了。查看Preview,提示CSRF验证失败,请求被中断。域名:dba.hkeasyspeed.com。打开开发者工具查看,网络里面可以看到报403。添加一条配置,把你配置域名添加进去。可以看到页面可以正常访问到。进入Archery容器。重启Archery容器。正常输入账号密码,OK。

万物皆可学 3143

面试中Promise相关问题

结合bilibili和小米和阿里的面试题中出现的与Promise对象相关的问题自己试着做了一些回答,涉及的有以下几个问题。 详述Promise的异步机制? Promise有几种状态? Promise如何满足多个异步进程的同步顺序? Promise.all的用法 如何让Promise.all在抛出异常后依然有效? Promise.all与Promise.race的区别?应用场景? 1.Promi...

tomorrownan的博客 602

coze 怎么读取excel文件,使用循环,数据库完成LLM问答并存储

本文介绍了如何在Coze平台实现"Excel读取+循环处理+LLM问答+数据库存储"的工作流。主要分为三个步骤:1)使用代码节点解析Excel文件为问答对数组;2)通过循环节点遍历问答对,调用LLM节点生成回答;3)利用数据库节点将问答结果存储到Coze内置数据库中。文中提供了代码示例和节点配置说明,并强调了注意事项如Excel格式要求、LLM调用频率控制等。该工作流适用于批量构建知识库问答系统并持久化存储结果。

ZhangJiqun&191cm&85kg 1787

基于 DnLUT 超高效的彩色图像去噪(CVPR 2025),本地部署 DnLUT 模型,图像去噪算法训练和推理,全网最详细教程

基于 DnLUT 超高效的彩色图像去噪(CVPR 2025),本地部署 DnLUT 模型,图像去噪算法训练和推理,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 363

这份前端面试题能帮助的不止是你Promise问题,还能拿到大厂(腾讯、百度、阿里)实习offer(1)

(Promise对象内部是同步的,内部得到内部值后进行调用.then的异步操作,可以一直.then .then …知道Promise嘛?如何学习(基础是最重要的,CSS和JS要注重实践,盖房子最重要的还是地基,所有的框架源码,组件等都基于CSS和JS),且Promise 必须为三种状态之一只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。Promise内部包含着异步的操作。手写 Sum(1,2,3)的累加(argument)(我以为是柯里化,面试官笑了一下,脑筋不要这么死嘛)

2301_79099373的博客 886

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

这份前端面试题能帮助的不止是你Promise问题,还能拿到大厂(腾讯、百度、阿里)实习offer(2)

本人分享一下这次字节跳动、美团、头条等大厂的面试真题涉及到的知识点,以及我个人的学习方法、学习路线等,当然也整理了一些学习文档资料出来是给大家的。知识点涉及比较全面,包括但不限于前端基础,HTML,CSS,JavaScript,Vue,ES6,HTTP,浏览器,算法等等开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】}, 1000)})console.log(‘异常捕获后可以继续.then’);})

2401_84411767的博客 60

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

微信小程序页面跳转方法总结,offer拿到手软

前言 相信前几天在朋友圈晒无聊的小伙伴们,也陆续结束了假期。很多公司为了员工的健康考虑,启动了远程办公模式。 床在桌边,饭在桌上,家里一切都那么安逸,专心工作真的是一件难事。远程工作最大的敌人就是:你的自制力。战胜自己,以后你一定是做成大事的人。 除了好好工作,远程办公还有一个好处是时间比较自由,抓紧一些自由的时间赶紧充电学习。越是空闲时间,越是你追赶别人的绝佳机会。 企业开始上班,就意味着大批量的招聘需求正在路上。所以利用好这段时间,开工后就是你进入大厂的最佳时机。 拉勾网通过与近百家知名企业的深入沟通,

m0_56255252的博客 172

卧槽,太不容易了!面试半年终于拿到百度offer了,分享一下我的面试经验吧

前言 如果你今天还在问我“程序员为什么需要深度学习?”,那么这只是意味着你对开发的兴趣并不高,你对编程的热情并不够,你对自己的职业发展也没有一个清晰的规划。 作为开发人员来说,不说要求自己成为业内顶尖,但也要保证自己不被市场所淘汰,学习对于程序员来说是最基本的事情。 百度一面 说说Java的集合框架 我说了list,set,map分别说了代表类和线程安全 那你说说hashmap存一个对象时候该注意什么? 你平时使用hashmap的key主要用什么? 接口抽象类区别? 异常的分类? 平时异常怎么用? 多线程了

weixin_49494194的博客 1675

进入前端行业前明白个道理:程序员解决的问题,大多不是程序问题

前言 很多人都说,程序员很辛苦,与这个角色联系在一起的词儿,通常是忙碌、加班、熬夜等。作为程序员,我们将其看作一个值得全情投入的职业,希望能够把精力放在设计算法、改进设计、优化系统这些具有创造性与成就感的本职工作上。 但现实情况却是,许多人因为一些“意外”,陷入了无休止的忙碌,比如: 你辛辛苦苦写的代码还没上线,产品经理就告诉你需求变了; 你拼命加班只因错估了工作量,自己造的“孽”,含着泪也要搞定; 你累死累活做出来的东西和要求不符,只能从头再来; 你大面积地修改代码只是因为设计糟糕,无法适应新的需求变化

Kepler_II的博客 8190

来自前端面试官的吐槽:问CSS、DOM,还招不招人了?KPI还要不要了?

前言 最近看到一位博主吐槽怎么现在很多前端面试中,很多公司很少或不问css,而直接问JavaScript、框架、Node.js这个问题,说现在满世界 Vue、小程序的简历,问啥 css啊,好多人 position 有啥值都不知道,z-index 值和 position 层叠关系都不知道,问了就挂,咋张嘴问…… 就更别提啥权重值怎么计算的这种稍微“难”一点点的问题了,考察更深入一点的,比如值处理步骤乃至到 CSSOM 就想都别想了。 个人是认为这说明业界前端的业务以pc系统后台类的居多。现在这些后台,不再需要

Kepler_II的博客 5806

问的多查的多的vue面试题整理不容错过,快看有没有你被问到的题目!

生命周期钩子函数 Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom -> 渲染、更新 -> 渲染、卸载等一系列过程,我们称这是Vue的生命周期 Vue中组件生命周期调用顺序 生命周期 描述 beforeCreate 组件实例被创建之初,组件的属性生效之前 created 组件实例已经完全创建,属性也绑定,但真实dom还没有生成,$el还不可用 beforeMount 在挂载开始之前被调用:相关的 render 函数首次被调用

Kepler_II的博客 5617

腾讯前端笔试心得:人生需要一点deadline

我标题取的是人生需要一点deadline,至于原因写在了文章结尾,希望对大家能有所启发。

Kepler_II的博客 2742

腾讯前端面试110min真的是110警告,还好我做了技术准备招架住了!

腾讯一面就聊了110分钟,问的问题也太多啦

Kepler_II的博客 2727

前端面试一位7年工作者:成也“7”年,败也“7”年

故事 在众多面试中,对于那个工作了7年的面试者,我印象很深刻,因为最开始拿到简历的时候,我一摸:"这简历,好厚啊!"再一看,工作7年。 于是我去找了我的领导,我说:“这人我应该没法面试,我工作经验都没他一半高啊。咋面?” 领导说:“没事,你先去聊聊,怕什么,就当是技术交流,别当成面试。” 面试的过程中我们聊的技术问题,他都没有回答的很好,他的技能就像一块大平板,一眼望去,什么都会一点,但是稍微一深入探讨,就两眼一抹黑了。 面试的最后,我直接给他说:“在整个面试的过程中,其实你有些问题回答的是不太好的,可能

Kepler_II的博客 2425
上一篇: JavaScript 逐点突破之单线程与异步,作为前端必知必会
下一篇: 滴滴前端面试问题没被难倒,自我介绍、面试时被考察、等环节回答却是灾难现场
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值