网易前端一面+二面(凉经)
一面
自我介绍...
- http协议了解过吗?请求有哪些?
- get post head put delete options等
- get post 区别
- 状态码知道吗?有哪些?
- 200不是head请求会写在body数据中,204不会写在body请求中,206断点续传
- 301永久重定向 302临时重定向304缓冲重定向
- 401 404
- 401代表的啥
- 用户未登录 没有登陆状态
- flex布局了解吗?一些属性
- 改变row和column是什么属性去改变?
- flex-direction
- flex-basis和直接设置元素的外框高哪个优先级高
- flex-basis 优先级高
- css选择器知道吗,有哪些?
- 组合选择器知道吗?(兄弟 ?....)---->(组合选择器指的就是同时使用多个选择器,比如一个标签父元素(div)的class是a, 这个标签(p)本身id是b,组合选择器就是div.a p.b{})
- 选择器优先级
- 内联 id 类 (伪类 属性,类) (伪元素,元素)
- css样式 !important 知道吗?
- 选择器优先级一样高的话取决于什么?
- 后面的样式会覆盖前面的
- 用过Less和Sass吗?
- 元素水平垂直居中怎么办?
- 文字 text-align:center
- 元素 margin: 0 auto
- 绝对定位 left:50% transform transition
- flex justcontent :center
- flex将主轴设置为y轴
- line-height
- position absolute top50% transform transition y -50%
- margin auto 0
- visible
- css定位?
- static、relative、absolute、sticky、fixed
- 粘滞定位 必须设置top left bottom right中的一个
- sticky相对于窗口进行定位?绝对定位呢?
- 绝对定位 最近开启定位的元素进行定位 body(面试官纠正:非static定位的元素进行定位)
- 父元素 sticky 相对于什么进行定位?
- ES6对吧?let、var、const区别?
- 变量、函数声明提升
- 未声明的变量直接声明报错 暂时性死区
- 箭头函数和普通函数的区别?
- 内部没有this指向,定义时的外面
- 箭头函数不能new generator arguments
- promise知道吗?
- 异步操作的方式,是es6中出现的
- api有哪些?
- pending fulfilled rejected (三种状态)
- 转成一个 promise 实例
- 怎么拿取resolve的结果?
- 使用.then 有两个参数 成功和失败的回调 使用成功的回调拿到
- 有其他的方法吗?
- .finally 不管是resolve
- 用过 async await 吗?
- 内部自带执行器
- 异步执行的函数
- await等待异步的执行结果
- promise 的resolve可以用 await 获取结果(面试官补充),因为await会等待promise的返回结果
- js异常捕捉的方法
- try catch
- try catch捕捉什么
- promise.reject结果怎么拿到?
- .then .catch获取
- await怎么捕获
- 用try...catch在try里面await一个结果
- catch中捕捉一个异常
- js的eventloop?
- 执行栈 任务的执行 先同步后异步 任务队列(宏和微) 【过程】
- 用过vue吗 没了解过react angluar
- ts了解过吗
- 基础知识考完了,做几道算法题
- 用两个栈实现队列(pop和push任选一种)
function Stack(){ var items=[]; this.push=function(item){ items.push(item); } this.pop=function(){ return items.pop(); } this.isEmpty=function(){ return items.length==0; } } var stack1= new Stack(); var stack2= new Stack(); function push(node) { stack1.push(node); } function pop() { //如果都为空,抛出错误 if(stack1.isEmpty() && stack2.isEmpty()){ throw new Error("Queue is empty"); } // 如果栈2是空,那么将栈1所有元素出栈,一次放入栈2 if(stack2.isEmpty()){ while(!stack1.isEmpty()){ stack2.push(stack1.pop()) } } //如果栈2不为空,直接出栈 return stack2.pop(); }
- 合并有序链表
要求不能新开一个新的链表
二面
说一下软件科技协会技术部部长是个啥,什么时候担任的,都有什么组,你都干了什么
介绍项目
- 网易云音乐,只写了个别的页面(主页,详情页),搜素功能,音乐播放,歌词同步
- 纳新网站
- 拦截器是干啥的(就是进行一个请求拦截和响应拦截)
- 请求拦截是怎么做的
- 将token配置到请求头里面
- token是怎么拿到的
- 登陆成功后,后台会返回的token,然后将token保存到本地和vuex中
- 为啥存在localStorage,不存cookie
- localStorage和cookie有什么区别
- 存在cookie中容易被篡改,怎么被篡改
- 容易被csrf攻击
- 常见的攻击
- xss,csrf
你什么时候能来,学校没有什么要忙的吗
算法题(力扣:210. 课程表 II)