首页 > 网易云大前端一二面+hr面
头像
Lostkevin
编辑于 2021-10-22 22:54
+ 关注

网易云大前端一二面+hr面

问学习建议而不是问结果0.0
如果觉得你ok就说你后面应该准备啥 如果觉得你不ok就会说你该学啥0.0
(技术栈忘记问了。。就只是问了下网易云音乐这块=。=)

一面2021.8.31

1、首先自我介绍,问了下简历的高德得地图怎实现的
问了高德地图里你有没有想过是怎么样实现的。。我说应该是首先检测用户双击动作,然后缓存一部分,懒加载
(其实应该重点是地图,不是跨平台!!!)
比如缩放,比如缓存,那么有什么缓存呢,说了浏览器缓存和HTTP缓存
2、是否了解HTTP2.0 1.0 (不了解 我说不是1.1吗 然后他说你看一下控制台。。。这时候气氛忽然欢快了起来hhhh 就没啥压力了 感觉好像人很好说话2333 比昨天的压力面不知道好到哪里去)
3、问了js问题,这时候因为我看不出层级分了个缩进,面试官说这是好习惯=_= 昨天的美团就只是冷冷的说里面只是个xxx而已

var a = 2
    const obj = {
    a: 1,
    hello() {
    console.log(this.a)
},
say: () => {
    console.log(this.a)
    }
}
obj.hello()
obj.say()

箭头函数是没有this的。所以先打印1再打印2
var f=obj.hello()
f() 这样输出什么?这样就是2了
如果想让他输出1怎么做,只改这一行代码,我说直接obj.f不就好了哈哈哈哈哈哈(气氛忽然欢快起来,忘记是不是在这里了)
其实用call bind apply就可以做到了
4、写一个promise all (傻了,我知道我promise没看…… )

// function all(promiseList) {
//     var c=new Promise(resolve,rej{
//     }).then()
// }

写了一会他说是不是记不得API了,然后还给了上面的API 呜呜呜太好了吧

var p1 = new Promise((res, rej) => {
  setTimeout(() => {
    res(2)
  }, 2000)
})
var p2 = new Promise((res, rej) => {
  setTimeout(() => {
    res(2)
  }, 2000)
})
var p3 = new Promise((res, rej) => {
  setTimeout(() => {
    res(2)
  }, 2000)
})
Promise.all([p1,p2,p3]);

期间说了一下all和 嗯race
all应该是等所有的都返回才可以,,啊,这题抓瞎
5、 写继承
啊啊啊啊我下午刚看的。然后脑子就一片空白……
可以用es6但是 function不能改就没有换class了

function Animal(type) {
  this.type = type;
  this.sayMyType = function () {
    console.log(this.type)
  }
}
// --------- 自己写的-------- 
function Cat(type){   
// 其实也可以Animal.call(Cat(type)吧?嗯??
    this.move=function(){
        console.log('move');
    }
}

Cat.prototype=new Animal('cat');
Cat.prototype.constructor=Cat;
// --------- 自己写的-------- (没想到这么easy就已经实现了hhh)
new Cat('cat').sayMyType() // 'cat' 
new Cat('cat').move()      // 'move'

6、实现模板

const personTemplate = `
<div>
  <h1>{{name}}</h1>
  <p>{{age}}</p>
</div>
`
function render(template, props) {
}
render(personTemplate, { name: 'netease music', age: 7 })
const personTemplate = `
<div>
  <h1>{{name}}</h1>
  <p>{{age}}</p>
</div>
`
function render(template, props) {
    for (const prop in props) {
        template=template.replace(prop,props[prop]);
        template=template.replace('{{','');
        template=template.replace('}}','');
  //console.log(`${property}: ${object[property]}`);
    }
    console.log(template);
}
render(personTemplate, { name: 'netease music', age: 7 })
// `<div>
//  <h1>netease music</h1>
//  <p>7</p>
// </div>`

for in这里还给了提示,因为说不考察具体的那个那个
然后replace这个是返回新的,啊啊啊。我说可以正则的(不自信不知道正则行不行,说只要实现了就可以了)

注册逻辑的更改是怎么回事呢(没怎么准备,就说首先注册登录分开,其次输完就发验证码改了
然后顺带!!引出这个密码存的时候呢?发的时候呢?在后端存的时候呢?
(=_= 因为感觉整个面霜还ok。。 我就开了个玩笑说起码
你有没有注意过
项目这块其实问题不大,校招主要还是基础扎实就ok
(因为专业。。)

HTTPS这一块还是额外关注下 尤其是加密这部分

二面 9.4好像是

1、首先是实现一个父元素垂直居中 两个子元素 一个宽度40px 另一个占满剩下 的位置
用flex 1
提示父元素也要垂直居中 写了margin 0 auto垂直忘了 就套了个外面的父元素display flex
然后问如果 想占满右边的空间实现垂直居中应该怎么样。嗯写*{margin:0}
2、实现indexof
直接手写了个暴力算法 面试官很吃惊:字符串能这样取到下标吗
我就console了一下 嗯可以取到。。然后又写的
但是。。。这tm不就是match一下的事,连正则都用不到啊,哭了,我还写那么一大串。。。。。

// //line=readline()
// //print(line)

// function indexOf(str1,str2){
//   // console.log(str1[0]);
//     var find=0; 
//     for(let i=0;i<str1.length;i++){
//         if(str1[i]===str2[0]){
//             let tmp=i;
//             // 找str2.length次 如果都相同就ok
//             let j=0;
//             for(j=0;j<str2.length;j++){
//                 if(str1[tmp++]!=str2[j])break;
//                 else{}
//             }
//             if(j==str2.length){
//                 find=1;
//                 return i;
//             }
//         }
//     }

//     if(find==0)return -1;
// }
// console.log(indexOf('sdfsadfsdfafs', 'qweqwe'));

最后这里忘记写console.log了去本地控制台调试了一下
3、写事件委托

  <div id="test">
    <div class="a">
        <span>1</span>
    </div>
    <div class="a">
        <span>2</span>
    </div>
    <div class="b">
        <span>3</span>
    </div>
  </div>

var list1=document.getElementsByClassName('test')[0];
啊啊啊啊。。没写出来
list1.addEventListener((e){
var e=e.target;
console.log(e.innerHTML);
})
面后补:好像这样写就可以了?没太懂需求是啥,而且事件委托怎么没有冒泡啊,上面的都没捕获到吗???

  var test=document.getElementById('test');
  test.addEventListener('click',event=>{
    console.log(event,event.target.innerHTML,'qwq');
  })

4、跨域为什么 怎么配置 scrpit用来跨域的具体咋搞
5、如果想实现网站轮播图怎么做(大脑空白了两分钟。。 面试官:好了可以结束了 我:我还能再抢救下 然后我继续说:
transtion。。网站轮播图怎么实现(js的原生实现,css3的animation实现) 说成了transform

是不是这样两行就能实现了?到时候补再说吧。

  var ul=document.getElementsByTagName('ul')[0];
  ul.addEventListener('click',event=>{
    console.log(event.target.innerHTML);
  })

网易云hr面9.8

【敲重点:这不是常规的hr面,感觉是比较像主管…… 因为技术问题他都懂,所以注意别踩雷155551】
1、简单自我介绍
2、为什么选了xxx大学当研究生(× 我傻了,我说因为这个是比较好的…… 这不是显得自己很弱吗)
3、为什么选图像处理 讲了下和前端相关的。。
4、讲一下实习的时候的项目(区块链的一个应用…… 对接…… 也没讲好
5、项目里遇到的挑战(讲了下fastclick,他问我怎么解决,警觉,感觉他还听懂的-。-随便说了个,这样解决不好吧【所以怎么解决呢??】
6、平时怎么学习前端(权威 的网站,看书)= > 又挖坑了,讲个看书理解的意思,讲了prototype,有些混乱……
7、有挫败感的事情【=_= ……

好想讲游戏里打不过去副本.jpg这个确实没好好准备
8、有什么不足
9、职业规划(我实在是不太懂…… 就说了个可以搞全栈,然后呢,问为什么想搞,空白,我说因为很羡慕一个独立游戏开发者,所以想整点自己的小玩意儿(类似人生重开模拟器那种,试图缓解气氛.jpg 还补充上等有实力了自己整
10、对网易的看法(觉得很神奇,163邮箱-网易云-阴阳师跨度大发展的不错
11、还有什么其他爱好 摄影、漫画、游戏
摄影的话大概是什么等级,我说大概还在入门……
(× 我又傻了…… 其实可以说下在漫画的自我修养的,比如人体这种。摄影我起码也懂的多一些了吧但是可能没什么标志性成果 …… 难受
12、以后自己需要有什么提升的地方,不单是技术。说要多出去走走啊,多经历,多读书
13、父母职业,是否独生子女,是否支持你来杭州(大学就在杭州读的…… 但感觉还是没回答好)
14、有什么想问的
这里麦又又又开始坏了,问了有什么具体部门,大概多少人(1300左右)
感觉还没到20分钟?又强行问了个搜索相关的问题,他说这个前端不管=_=

DOM事件模型与事件委托
实际上是有三种
事件模型主要有三种模型:

原始事件模型 (没有事件流)
DOM2事件模型 (W3C规范的标准事件模型)也是现代浏览器的标准!!!
IE事件模型 (IE浏览器独有)
然后还是常规的
捕获事件阶段
处于目标阶段
冒泡事件阶段

但是为什么我手写捕获不到呢?

*事件委托只是在添加父元素身上而已,和事件冒泡是不同的概念
同理,这个e可以传入,也可以直接使用event获取(他们那么写是为了兼容没有传入的状况。event打印出来的是具体点击的元素,在addEventListener 内部也可以直接获取,如果是绑定在父子元素身上都可以拿到这个evnet
*

可看https://segmentfault.com/a/1190000038144293 最后的例子,是个事件委托里冒泡。
addEventListener('onclick',e=>,第三个参数默认是false(也就是
AELOE,就看键盘上的Delete键就行,et=0这样记
end

更多模拟面试

全部评论

(2) 回帖
加载中...
话题 回帖