提前批
依图一面
- axios请求封装,处理返回结果的方式(什么403 404什么的怎么处理?),传入函数参数,this指向
- 存数据的是时候,本来是以数组的方式从别的地方传来的,但是你存数据的时候怎么存储才能让后续使用更便捷,让代码的复用性等性能更好
- 事件轮询:宏任务,微任务
- 数据扁平化,出现最多次数的两个数字
- 遍历对象的几种方式
- 讲一下vue中的单项数据流:怎么才能触发model层的改变
- 兄弟,父子组件之间的通信方式
- 数组的typeof结果
- 发散性题目:
n * n个小格的棋盘,如果用1 * 2的小格去铺,能铺满么? ->能
如果随机扣除棋盘上的两个小格,再去用1 * 2的小格去铺,能铺满么? ->能
如果棋盘为黑白格,1 * 2的小格也是黑白格,再随机扣除两个小格,能铺满么? ->不能
总结规律…
依图二面(30分钟就结束了,80%会凉)
- 全程问项目
- 项目难点,对项目从初始到完成的整体架构过程,怎么去思考的
- JSONP跨域,JSONP的限制,其他跨域方式
- 前端优化:减少HTTP请求你是怎么理解的
- 浏览器缓存(HTTP缓存):从请求到最后的流程
- HTTP2.0 ,HTTPS和HTTP1.0
- 歌词播放高亮部分怎么实现的,是以行为单位还是字为单位
- 移动端适配方案
- 整个音乐播放器项目没有涉及到数据库存储么?
- 你学习前端的过程,对未来实习公司的要求,对自己的计划
- 面试评价
- 全程都是一问一答,不是我要的交流方式,我希望是交流,而不是问答,所以没办法继续
- 很多东西都是在背你们所谓的面经或者答案,没有思考过程
- 很多时候你给的答案都很奇怪 (我:奇怪这个词我听他说了两次…)
- 我不知道你的答案或者项目哪些是自己独立思考的
作业帮一面
- 附加:for in与for of区别,for in 遍历空数组空对象的结果
- 原始值与引用值的区别
- 数据深拷贝时候注意不同数据,考虑数组,对象
- ES6的箭头函数
- forEach等数组方法 跳出循环怎么做 ->抛出错误:throw new Error(“error”)
- 围绕项目问的
- 音乐播放器难点,怎么实现联想搜索的
- 跨域的几种方式
- 多级嵌套的dom结构,像ul>li>ul>li>ul等等多级嵌套,怎么优化,扁平化->什么什么redix,没听清
- 前端优化
- 几种存储方式的区别->localStorage/cookies/sessionStorage,如何拿到localStorage最新被修改的值? ->通过一个唯一的id,或者时间戳,或者token等等标示
作业帮二面
- 运行结果
- 数组排序
- 两个有序数组的合并,并排序,要求:不允许遍历
- 千分位划分,不利用正则
- 动态规划,分红包:一共10个人,分完200元红包,每个人收到的 >= 10元,合理的分配方案
只要求思路,不用写出来 - CSS定位:position取值,给一段代码:画出位置
阿里一面:电面
- 围绕项目:
- 你在自己的项目中认为有挑战性的,难点是什么
- 针对自己的说的这些难点,说一下自己是怎么做的
- 这个项目是自发的项目还是有模仿的项目
- 那个Node代理服务器怎么做的
- 音乐数据获取完之后,后面的东西怎么开发的
- 获取腾讯数据的时候,假如有防止被外部获取的方法,你是怎么破解的
- 你提到的JSONP,是用它来获取资源嘛?能简单解释它的原理和实现么?
- 除了JSONP还有哪些跨域的方式
- CORS具体怎么实现跨域的?
- 知道什么叫RESFul协议么
- CSS3有哪些能实现视图,位置移动的API,方法?
transition解释一下,如果实现缩放怎么做? - 哪些行为会引发浏览器的repaint和reflow
- 解释一下节流和防抖,应用场景
- 之前你项目里说,通过什么API去定位到元素的(better-scroll的scrollToElement),这个API怎么实现的,考虑了么?
- 关于路由这里你用的是什么?你知道Vue的路由么?路由两个模式区别
- 你主要用了那些方面的懒加载,图片,路由懒加载怎么实现的,不用第三方,自己要怎么实现
- mixin:什么叫mixin,什么叫继承,能不能完成相同的效果
- JS怎么实现继承的,有哪几种方式
- 整体的代码架构,模块化研发,你去如何思考的,你整体架构指的是什么,模块化指的是什么
- 基础问题
- 如果用JS描述一棵树,这棵树的结构是什么样的
- 树的分类:二叉树,完全二叉树,红黑树等等
- CSS样式清除浮动
- 设计模式了解哪些?你有没有用过?用在哪些方面,常见的有哪几类
- 项目的工程化解决方案是什么?Webpack,Vue-cli脚手架什么的
- 你如何去理解Webpack中的bundle,chunk,module,loaders
- Node服务器运维有了解过么,React有了解过么?
- Vue2.0 引入了一个Virtual Dom,你认为它引入到Vue里面,对Vue来讲有什么价值,引入的目的是什么?
- Over,你有什么要问我的?
整体不错,基础问题不大,但是多思考多实践部分应该多思考,能了解一下面上的知识后面的原理,我们要看的是你对项目整体架构的把控与设计,多从原理角度去考虑问题
蘑菇街一面
- 实例的原型是什么的?(构造函数的prototype) 构造函数的原型是什么?(对象)
- 平时用什么方式获取数据,说几个常见的HTTP状态码
- 基本类型,引用类型区别,写一个深拷贝(只传入一个参数)
- 项目难点
- 组件的更改触发哪些生命周期函数,说一下这些生命周期都做了什么事,例如首先判断哪些结点,key值什么的
- Vue双向数据绑定,原理,实现
- map,weakmap区别(从性能方面考虑)
深信服一面
- 浮动的场景,清除浮动的应用场景,举几个栗子
- DOM事件流
- 高并发的优化(不是那些通俗的性能优化,这是一个单独的点)
- 跨域,不需要另一端配合的,举出几种方式
- HTTP协议缓存
- 单项链表的反转
- 100个格子,10个雷,怎么实现每个格子有雷的概率都是1/10
- async/await,错误处理
- 盒模型
深信服二面
疯狂说项目,问我很多印象深刻的点,难点,亮点
有没有看过别人源码,有没有感兴趣的技术点,最近这些技术点github上有没有更新
最后寄语: 最重要的是,你要对这个行业感兴趣
腾讯一面
- 你做项目的时候,怎么去启动一个本地服务,项目后来上线了么?
- 项目你怎么获取的数据
- jsonp原理
- img的src可以做跨域操作么?和script的src有什么区别呢
- 除了jsonp还有其他方法实现跨域么
- 使用jsonp跨域会引起网页的安全性问题么?
- 前端经常遇到的安全性问题都有哪些,你做项目考虑到什么安全性措施了么,怎么防止别人窃取
- ES6有使用哪些新特性呢?平常使用的比较多的有哪些?
- let和var有什么区别呢
- 以前如果想要使用块级作用域,我应该怎么做
- 闭包是怎么形成的呢,形成的条件,原理,为什么会形成这样的现象
- 平常用js有遇到过内存泄露的问题么?
- 怎么防止内存泄漏呢?怎么解决呢?
- 你了解JS引擎的垃圾回收机制么?
- 现在的一般的回收机制是哪种?
- 标记清除法有什么缺点么?
- 面试评价:基础可以,知识面还是挺全的,感觉你没能把知识串联到一起去
美团一面
- 手写防抖函数
- 怎么判断dom元素是否在dom树中
- 怎么判断dom元素是都在页面可视区域
- 手写一个洗牌函数
- cookies怎么设置过期时间,cookies和localStorage区别是什么
- 在项目中怎么存储用户登录或者离线状态的
- 比如ajax请求网页,然后返回302的状态码怎么处理?答案:ajax异步请求302分析
- 上下定高,中间自适应怎么实现
- cookies在跨域中可以携带么?
- 图片懒加载怎么实现的
- jsonp跨域原理,实现
- Vue2.0的双向绑定,有什么缺点,怎么改进(vue3.0的proxy)
- ES6的map,set有什么区别
- 实现数组的去重,不用newSet,除了indexOf,有没有别的办法判断数字是否在数组中
- 移动端适配,方案,你用的什么方案,你的viewport怎么设置的,rem和em区别
美团二面
- 谷歌调试怎么实现的,就是那个我可以选中元素的功能,还有一个功能就是蒙层那个
- 手写js深拷贝,如果最初传入的是数组或者对象,或者基本类型怎么处理
- 手写LRU实现,要求存取时间复杂度为O(1)
- 讲一讲重排和重绘,应用场景,发生重排重绘的时机,哪些改变会触发重排,哪些会发生重绘,rendTree的作用是什么?
- cookie session区别,sessionId存在哪里?
- http中包括啥子,cookies放在哪里
- ajax中传递数据在哪个api中
- jsonp原理 如果我后端定义好了callback的名字,那么在很多接口发送请求的时候,callback还都一样,我怎么确定那个是我自己发送的请求?不改变接口的情况下
美团复试面
- 项目难点,有成就感的事情是什么? 对考研怎么看?
- 一道题说思路,列表达式
大致意思就是给定一定数量的石子,两个人轮流来捡石子,一次可以捡一颗石子,或者两颗石子,谁先开始不确定,问最后谁会赢?(我:就是对3取余的故事,面试官:思路很接近,然后就没有然后了)
百度一面(电话)
- 项目用到了那些技术
- 遇到问题从技术角度讲是如何解决的
- 比如说利用vuex没法实现持久化,选择了localStorage,但是Vuex也是可以实现持久化的,你了解过么?
- JSONP使用场景和代理的使用场景
- 为什么JSONP可以解决跨域问题
- src请求的所有资源都可以被同源请求策略限制么
- 介绍一下Vue,以及你对Vue的理解
- 你个人觉得你再前端方向的闪光点是什么呢?或者说你在哪些方面各有所长呢?
- ES6了解多少,箭头函数和普通函数区别
- let和const与var区别
- ES6的类在浏览器肯定经过编译,降级等等,为了保证这种兼容性肯定是从ES5/ES6降级到ES3,这个过程肯定做了很多转化工作,所以我想问的就是ES6转化为变成了什么东西
- 你的项目大约写了多少行代码
- webpack在你的项目中扮演了是什么样的角色,压缩是由webpack来做的么?
- 前端的模块化
- webpack遵循的哪个模块化标准呢?
- 你现在去写一个模块,遵循AMD规范,实现的功能是统计当前页面内所有的标签种类及个数
- 从你的角度来讲,你自己比较擅长的东西,
- 面试评价:每次把一个东西看透再去看下一个
360一面
- 原型,原型链
- 宏任务,微任务,还有哪些
- promise,await/async区别,说说promise
- ES6解构赋值,isArray是ES几的api
- 变量声明几种方式,区别,你什么时候会用const。什么时候会用let
- webpack的plugins和loaderd区别,你用过哪种
- webpack你想过优化的问题么,在项目里你怎么优化的
- 手写一个节流防抖
- 判断数组的几种方法
- call,apply,bind的区别,你写项目的时候应用场景有哪些,什么时候需要改变this指向
- 跨域,解释,几种方法
- CSS的flex几种属性值,代表什么,兼容性呢?
- Vue如何实现响应式(具体的双向绑定怎么实现的)
- Vue中的方法和计算属性(computed)区别
- 数组中某一项的值的改变,Vue能检测到么?
- 你项目中的lodash怎么按需加载
- 了解fetch么
- 使用过ajax么
- 事件委托原理
360二面
- undefined,null区别
- 原始类型,引用类型,赋值,区别
- 宏任务(setTimeout里面函数的执行顺序),微任务执行顺序
- 原型链判断,实例是否能改变原型链上的值
- 数组扁平化
- 声明变量的几种方式,有什么区别,还有什么方式,(let var const import func等等)
- 图片路由懒加载
- 项目在移动端能运行么?怎么启动的服务
Shopee
- 项目难点,简要介绍
- 将两个数组合并,并且去掉重复值,比如[1, 2, 3], [2, 3, 4]得到的值就是[1, 4],个数就为2,写一个函数实现
- 函数节流防抖,手写
- 改进:要求节流:在一定时间内点击多次的话,在执行节流函数的同时,执行最后一个点击的函数,就是,正常我在一定时间内点击的话,不是只会执行一次么,剩下的函数全都撇掉了,我要求就是,把那些函数中的最后一次进行执行
- 盒模型:下面这个怎么实现的,如果我要求图片和文字都垂直水平居中怎么做
- 单行,多行文本溢出,打点显示
- 解释SSR,说一说其他优化的方式
- Webpack打包最后生成几个文件?
- 你项目中获取的QQ音乐的数据,那么如果是你的话,怎么去防止别人获取你的数据,你的方法有什么
shopee二面
- 对于两个或者多个链表的合并,优化,时间复杂度
- 二分查找某数组中第一个大于给定值的元素
- get/post区别,tcp/udp区别,http1.1的长连接
- https原理
- 常见的设计模式,单例模式说一说(多线程的问题怎么解决,怎么保证同一时间只有一个线程在工作?(利用操作系统中的加锁))
shopee三面(高高兴兴等hr,结果是技术面?我已经半个月没学过习了!!!)
- 单行文本溢出怎么处理,css怎么做,如果用JS怎么做?
- 答:获取文本宽度?获取视口宽度,小于某个值显示文字,否则显示省略号
- 问:font-size获取的是文字的宽度还是高度?
- 答:高度,无法获取宽度
- 问:那你怎么做呢?怎么获取文字宽度?如果获取到了文字宽度你要怎么实现省略号显示?
- 答:每填充一个文字,把文字宽度累加,小于某个值,正常显示,否则显示省略号
- 问:时间复杂度是多少?
- 答:O(n)
- 问:怎么降低时间复杂度?
- 答:一半一半放?
- 问:怎么一半一半放?
- 答:…,不知道
- 问:可以通过啥啥啥
- 输入url到页面显示经历了啥?
- 答:通过啥啥啥
- 问:回流,重绘说一说
- 回答:概念,影响因素啥啥啥
- 问:script标签加载文件对页面渲染有什么影响?
- 答:阻塞啥啥啥,可以通过defer和async异步加载
- 问:defer和async区别,css文件放在首部还是底部,为什么有什么好处?js呢,啥好处?
- 答:吧啦吧啦
- 如果实现动画,用什么实现?
- 答:translate
- 问:translate会造成重绘么?
- 答:应该会吧,不太知道
- 问:你知道left么,也可以实现动画,不过它和translate的优缺点比较,对于页面性能来说,哪个好点?
- 答:不知道,我猜是translate更好一点
- 虚拟列表的实现
- 答:可视区域正常显示,上下预留一部分,避免出现空的状态
- 问:你这种实现很困难,细节方面等等,可以通过改变数据,然后不改变dom进行操作(我…,原来你想问的是这个…),然后把看不到的区域部分数据放在列表底部,加载到时,继续显示。
- 你对陌生的环境,全英语的环境可以接受么?(可以,绝对可以),后续进度等通知,我们会尽快走进度(感觉要凉,听到你回去等消息这几个字就感觉差不多要凉了,呜呜呜,哭死…)
猫眼电话一面
- 项目简要介绍
- 登录用户状态怎么存储的,知道cookies和session区别
- Vue中vkey作用,知道diff么,能往深了说说么
- Vue双向绑定解释一下,Ojbect.defineProperty用到了哪些属性,(get, set)哪里用了,干什么的
- HTTP缓存,当强缓存失效之后,协商缓存里哪个有效,如果强缓存失效,然后协商缓存生效的话,返回哪个状态码?
- HTTP状态码,4xx,5xx
- ES6用过哪些
- 宏任务,微任务,执行顺序,有哪些是宏任务,哪些是微任务
- position的值,哪些脱离了文档流
- JS中监听滚动事件是哪个 ,绑定事件的方式
- JS事件委托原理,事件捕获是怎么样的,(不懂她要问什么,我说从window往父元素往子元素,她的语气很微妙…,谁知道她要问什么)
- 闭包的原理,闭包应用场景
- 题:
正式批
映客直播一面
- 介绍一下JS中的事件吧,关于事件冒泡的应用场景有哪些?如果不用冒泡,怎么绑定事件?如果在Vue中绑定事件,是在ul还是li身上?为什么?
- 移动端调试的方法,假如我移动端打开时候白屏了,怎么调试
- 原型链:_ _ proto_ _, prototype, constructor,判断指向等
- 继承的几种方式,优缺点,为什么会有这些问题,最后为什么要用一个function在中间进行协调(子继承父,子改变,父不改变,为什么?中间能说具体一点么?)
- 结果
- 前端优化的方法
- webpack的配置介绍一下,entry里面有什么,从项目的搭建,到最后项目上线中间你怎么用vue-cli配合webpack进行工作的
- 常见HTTP状态码:…,304具体是怎样的,浏览器和服务器交互过程中是怎样返回这个值的?301,302又是怎样的
- 创建事件的几种方式:如果我此时有一个事件,有什么on,emit啥的,从定义事件到最后调用,结束,能写出来么?
- Vuex的数据流动介绍一下(官网上的图就有,我没答上来)
- 跨域的几种方式,CORS具体是怎么配置的,要求讲的特别细!!!把浏览器怎么请求到最后怎么返回都给讲清楚
奇安信一面
- 原型链,反正就是proto,prototype那些东西,问了Person.a = ‘a’(Person是构造函数),通过Person构造出的实例会不会继承这个属性
- HTTP相关,跨域相关
- 手动转换一个进制,笔试题的优化(我也忘了啥题了…)
奇安信二面
- 项目里的难点,如果打开多个标签,一个更改了vuex中的内容,一个怎么保证另一个实时更改
- 求两个数是不是互质(除了1没有共同因数)
- 简历里面写的数据与逻辑分离指的是什么?项目里的序列化指的又是什么?
- 你认为你自己的优势在哪里?
- 节流防抖你怎么实现的,应用场景,debounceI什么时候调用
作业帮现场一面
- 原型链,作用域链,instanceof手动实现
- await相比promise的优势在哪里,await后面等待的是什么,是promise的哪个状态
- 扩展运算符相比直接传递参数有哪些优点
- ES6了解哪些
- 项目技术栈难点
- 解释一下SSR,好处
- HTTP相关的,浏览器缓存的通信过程
作业帮二面
- 轮播图实现原理,如何
- 懒加载原理
- 操作vuex的步骤,手写
- css盒模型
- 剩下的…我忘了…
vipkid
- better-scroll中的better代表了更好,那么问:为什么比原生js好,好在哪里,你自己怎么实现这样的功能
- 图片懒加载原理,自己怎么实现,如果图片的高度未知,抖动情况怎么处理
- setInterval怎么实现,如果是你,你怎么实现
- 你项目里的audio原生样式你怎么处理的,你在做这部分的时候,有哪些比较难的地方
- vuex你主要用它干了什么
- vue路由原理
- axios请求返回的是什么,是一个标准还是正常的promise么?(啥叫标准的?),行这个问题过了
- 移动端适配的方案,如果我一个页面左右内容,左边内容非常多,但是如果此时页面很小就放不下了,这时要怎么解决???
- audio的原生样式你是怎么处理的
拼多多二面
- Vue解析,从 .vue文件到浏览器最终呈现过程(Vue解析过程,补充一下源码!!!)
- HTTPS具体原理,MD5是非对称性加密算法么?考虑一下MD5原理
- Vue-router原理,hash怎么跳转的,调用的什么方法,我:locations.hash?,然后继续了下一个问题
- webpack中的loaders,plugins是什么,干什么的,你用过哪些具体说明
- Vue数据检测内部怎么实现的,getter,setter中都做了什么
- 从后端获取的数据,怎么实现所有组件都使用,(Vuex, localStorage, sessionStorage),还有别的么?
- 父子组件通信
- Vue能对于监听到数组的改变么,那怎么实现监听?我:vue.set,那具体怎么实现的?我:用vue.set啊,然后继续了下一个问题
- 实现代码
- 第二个题:求和之后双向指针 进行向里遍历
- 自己想想有没有别的方法!!!
- 网页滥用div或者p标签的有什么缺点
- HTTP,TCP/UDP属于哪一层的协议
- 电脑端微信 按上下键,右侧窗口的改变怎么做到的
+ innerwidth innerheight来改
花椒直播
- setTimeout/setInterval返回值
- node中event实现
- ES5继承 能具体再说一下么
- 数据格式的返回值 除了json还有么?
- ajax那个监听:也就是onreadychange事件,除了这个事件还有什么别的方式么?
- 防抖、节流、懒加载
- JSONP除了:url ,callback的另一个参数是什么?
- jsonp 原理, 实现jsonp的过程中,创建好的script放在哪里?
- 如何设置localstorage 或者cookies的值,说说你了解的cookies
- proxy用过么?具体讲讲
- 手写 发布者订阅者模式
- 移动端适配方法,你项目中怎么设置rem(我:就是相对于根元素的大小),那么根元素字体大小怎么设置,除了rem还有什么其他单位么? 除了em px ,还有么?
跟谁学一面
- 图片格式有哪些 webp了解过么?(我也不知道他说的是啥,我听成了webpack,然后说了一顿webpack相关的)
- ES6中的数组的api有哪些,手动实现filter
- vue-router的原理,hash模式是怎么监听hash的改变的(我:hashChange? 面试官:可以,还有别的了吗?我:…)
跟谁学二面
- 项目难点(一顿扯皮)
- 用加减乘除求根号2小数点后三位(提示我用二分)
- 给定链表头结点 求倒数第n个结点的值,如果第n个结点不存在,容错考虑到了么?
老虎证券一面
- action mutations 区别
- 正则
- mixin ,如果mixin中定义的方法,这个组件中也有,怎么过程?
- webpack 代码分割的三种方式 (import)
- webpack的打包后bundle分为几种
- 父子组件通信除了那些还有个root
- babel-loader转化原理
- git的三大分区, git提交的流程
- Vuex说一下
- 虚拟dom原理,为什么要引入虚拟dom?虚拟dom一定效率高么?
- 模块化:用法,优点
- Vue的createElement
- 说一说常见的状态码,206是什么?
- 判断是不是空对象
老虎证券二面
- 用Vue实现一个弹出框组件怎么实现
- 本地存储的几种方式,区别?应用场景?如果刷新页面,或者我跳转之后返回,这两种情况sessionLocalStorage会改变么?
- 同源策略是什么?跨域方式?如果使用CORS,我使用post方法,并且改变了我的请求啥啥(我忘了),那么我请求前需要处理什么东西么?
- http请求方法? options是什么?
- 数组去重
- 实现一个函数 打印树形目录
- mongobd的啥啥啥,我也忘了
- CSS选择器优先级
北森云一面
- 路由,怎么传参
- 路由的钩子函数
- 自定义指令使用的场景
- 我在自定义指令里面可以做哪些事情呢?
- 如何定义自定义组件不去覆盖别的样式
- 怎样全局引用某个组件
- 怎样动态加载组件
- 手动清除闭包引起的内存泄漏
58同城现场一面
- 手写防抖实现
- 怎么判断一个对象的属性中是不是有指向自己的引用
58同城现场二面
- 宏任务微任务判断执行顺序
- 实现一个函数能够完成下面的功能,(考虑一下深拷贝的递归)
- 选出ul中的第二个li,用css属性选择器
- 如果设置第二个li为{position:relative; top: 50px;},那么第二个li的位置和第三个li的位置是怎么样的,relative脱离了文档流了么?
- 防抖原理,节流原理
- 剩下的我忘了…,应该就是扯皮了
人人一面
- vue组件通信
- keep-alive触发的完整生命周期包括哪些
- SSR的时候没有document,window,如果和原本的document或者window撞了怎么办?(通过nuxt的一个api,判断是否有那个变量,如果有就不引入插件,如果没有就引入插件,我也不知道是啥)
- nuxt的生命周期
- webpack基本配置,你用过哪些loader
- npm原理了解么?
- vue啥往后没有config目录,你要怎么配置webpack文件?(通过新建一个vue-config文件)
- 移动端适配你是怎么做的,flex你用了啥?viewport你怎么配置的,它用来干什么的?
- git pull 和git fetch区别?你用过什么命令
- 后端是用node?(不是,没咋用node,数据方面使用的是mongodb数据库)
- 你用过哪些插件,封装了那些插件呢?
- 如果有一个插件,有头样式,但是:我并不想要这个默认样式,我怎么做呢?
- 我:设置默认值,通过传入的参数么,决定是不是要使用某个功能
- 面试官:我知道你的意思,但是我不想这么做,换一种方法(好像他是要考一个考点,但是我忘了…)
网易雷火
- vue的单向数据流,什么作用,好处,和双向数据绑定得区别
- vue的双向数据绑定,说一说怎么回事(我说了一大堆,数据劫持结合发布者订阅者啥的,什么observer,watcher等等的创建,面试官:你说的其实是响应式的内容,那么你对响应式是怎么理解的???)
- 闭包:形成条件,用它来做什么?(闭包:大致意思就是把内部函数返回,可以实现:模拟块级作用域,变量私有化)
- 返回的一定是一个函数?
讲一下块级作用域,JS中有几种作用域 - 闭包是怎么模拟块级作用域的?它不是在一个函数内部么,它是一个函数,为什么会是块级作用域?你理解的块级作用域是什么?
- 在一个for循环中使用闭包是因为它让这个for循环拥有了块级作用域才保存住了它的变量的?
- 闭包为什么会引用外部函数的内部变量?(我:源于作用链)
- 作用域链和作用域是什么关系
- 你知道JS中哪些可以生成块级作用域么?
- 一个函数作用域为什么要去模拟块级作用域,你理解的块级作用域是什么,JS中哪些可以生成块级作用域(这应该是她说的第二遍了)
- 怎么样算是一个块级作用域
- let const定义的变量和that(我听到怎么是that???还是var?我也不确定)区别?
- const可以定义变量么?
- 你刚刚说var定义的变量是全局作用域,这句话真的是对的么?如果我在函数中定义,那么外部能访问到么?
- 变量提升是什么样子的?比如下面三种方式,然后在声明之前使用的话,结果都是什么?为什么是这样的结果?function a 和var a = function 结果为什么是不一样的???
- function a(){}
- var a = function(){}
- var a
- 那你能给我讲一下变量提升是什么样子么?
- 你使用过node是么?(我只是node做一个简单的代理,改变获取数据时候的referer和host)
- 你用它做代理的目的是为什么?
- 那如果你不用node怎么实现?实现代理,改变请求头?
- SSR你是用的什么?你的SSR技术是怎么实现的,为什么在你的项目中要使用SSR呢,你经过SSR拿到的是一个数据,还是完整的html,因为你用的那个nuxt是一个前后同构的框架,你是怎么把html渲染到页面上的呢,前端的template怎么和vue的template合在一起的????
- 结合你之前说的响应式,那么你在前端操作数据的时候,怎么让页面上的html继续变化呢,比如说首页用户提交了表单之类的 ?
- 换一种说法,你前端的vue或者说template怎么和后端返回的填充好的数据的html融合在一起使用(源于之前说的SSR)
- 那后续的渲染还是服务端渲染的嘛?如果说你的数据变化了,举个例子:本来你的商城有5个商品,然后由服务端渲染之后,给你5个商品,但是,你后续又添加了一个商品,那么增加的这个商品,是直接后端渲染好返回过来的,还是后续请求的(我:后来请求的),那么:服务端给来的html片段,和后来浏览器请求数据渲染出来的那个template,它们俩个是怎么融合的呢,是直接丢弃了原来服务端的么?还是说 第一次渲染是怎么知道要用服务端还是浏览器端渲染?
- 一个url输入到最后拿到网页的过程?最后浏览器是怎么渲染的(我:domtree,cssom tree … 最后绘制),你能想到其他的什么了么?如果在这个过程中,你的网页变的特别慢,你有什么优化的方案么?(我:前端优化一顿说),那么你说的这些你在项目中用到过哪些(我:图片懒加载,啥啥啥的),图片懒加载原理,你通过哪些api进行计算高度的(clientHeight,scrollTop等等)
- 你对html语义化的理解(我说了一点语义化的优点:有利于搜索引擎什么的),你使用过哪些语义化标签呢 ?你为什么要用header,footer等等,你为什么不用div,它们的样式有什么区别么?
- 你使用过canvas么?笔试时候,那道题怎么做的(给定图片的什么高度,坐标啥的,截图?,我忘了)
雷火二面
- 你是怎么写的苹果安卓不同端适配,移动端兼容方案?你使用的是rem还是em或者px?你在做移动端项目的时候,有碰到过兼容适配方面的问题么?(答:1px,fastclick啥的,不知道对不对)
- axios和ajax,fetch区别
- 前端路由模式,原理
- ES6的proxy干嘛的,说说
- import和require区别
- mysql,linux了解多少,更新表中id为1语句怎么写
- webpack插件说一说,html-webpack-plugin干嘛的(答:压缩,回:错了)
- http和https区别,https加密验证原理
- 将元素旋转90度,怎么做?(CSS3的rotate)
- 暂时就想起这么多了 。忘溜。。。。
哔哩哔哩
- 项目中的SSR,有什么好处?
- nuxt框架和vue-cli区别,对于使用上来说有什么不同么?
- webpack打包好处有哪些?
- 你认为element-ui和vue在你项目中是什么样的作用呢?
- Sass你用什么,相比css优点有哪些?
- JSONP跨域
- 手写代码:
- 剩下的再补充,enmm我忘了…
陌陌一面电面
- 常见的http请求头,介绍几个,请求头还是返回头,分别什么意思,options的含义
- 为什么会有跨域的问题,解决方式,分别的原理,jsoup和cors的区别,哪个能携带cookies?
- CSRF和XSS攻击,防御介绍,CSRF的防御中那几种方式都可以伪造么?
- 常见http状态码
- cache-control能介绍两个常用的值么?no-cache什么意思,和no-start(我也不确定我听到的是啥) 区别?cache-control一般后面有个数字像6000什么的都代表什么意思
- get/post区别
- axios对请求有拦截器,了解过么,你要是自己写一个拦截器的思路是什么
- 你知道什么是SSR么?SSR优点有哪些?
- JS有哪种基本的数据类型么?(基础6种,引用好多种)分别都说一说,基础有什么?引用有什么?说一说symbol
- promise了解过么?
- 什么是eventloop ?有哪些宏任务?微任务?promise.then是哪种?promise为什么new完之后立即执行?
- 你一般通过什么渠道去了解前端相关的知识
- 最近看的一篇技术文章是什么?
- 了解过小程序么?(没有…)