网易8月11号笔试记录

昨天写了网易的笔试题,短时间中记下了一小部分题目,想来和大家分享。
首先是题目:
1.console.log(a == 1 && a == 2 && a == 3)怎么输出是true。
2.CDNXXX强缓存(记不太清了)
3.http1.0支不支持***-control?
4.有关tcp连接的提问。。。
5.es6中的import
6.css垂直居中的问题
7.for(var i=1;i<=3;i++){setTimeout((function(a){console.log(a)})(i),0)}输出什么?
8.堆栈的问题也是问了的。剩下的没记住
。。。。。。。。好啦光看题目的小伙伴们已经可以走了,现下面就是我写的解答了(答案部分来自网络):
1.对于第一题来说要是直接输出明显就是会报错的,因为你的a根本就没有定义,首先我们看到这道题中用的是双等号,就是会经过类型转化的,所以:
①我们可以通过重写Object.toString,valueOf:
const a = {
i: 1,
toString :function(){
retrun a.i++
}
}
对这个来说就是Object和Number类型之间的比较,所以说Object会转化成数字类型之后再去和数字比较, a ==1就相当于是ToPrimitive(a) == 1
(PS:ToPrimitive()~属性转化为原始值的属性)。
②定义“a”属性,并重写它的getter方法:
Object.defineProperty(this, "a", {
get() {
return value.next().value
}
})
const value = function* (){
let i = 0;
while(true) yield i++:
}
(PS:yield 关键字用来暂停和恢复一个生成器函数(function*),一旦遇到 yield 表达式,生成器的代码将被暂停运行,直到生成器的 next() 方法被调用。每次调用生成器的next()方法时,生成器都会恢复执行)
③字符编码:
可以利用Unicode编码来解决
④数组toString隐含调用了join方法
可以把 a=[1,2,3],a.join=a.shift;之后再做输出就是true了,主要就是利用了数组的toString会隐含的调用Array.join方法。
2.首先题目我记不太清了,对于缓存而言就是浏览器缓存和CDN缓存,其中的浏览器缓存就是协商缓存和强缓存(主要是问问服务器存不存)强缓存主要是用了Cache-control和Expires这两个来实现的,要是强缓存成功了的话就是http状态码是200,network中显示from ***。协商缓存利用的是[last-modified, If-Modified-Since],[Etag, If-None-Match].
对于CDN缓存来说就是一个普通的缓存,***缓存或者说是一个边缘缓存,就是不关心用户的具体地理位置,也应该考虑使用cdn缓存的***来提高用户的体验。
3.http1.0首先是不支持Cache-control的,他只是实现了pragma:no-Cache。对于Cache-control头来说就是指定缓存指令,所有请求和响应链的缓存机制都必须遵守这个规则,该指令规定行为,意在防止缓存受到请求或者是响应的不利干扰,缓存指令是单向的,也就是说一个请求中有缓存指令不意味着响应中也存在。
4.tcp连接:
在tcp中进行了三次握手和四次挥手。每个tcp的实现必须选择一个报文段最大生存时间MSL(maximum segment Lifetime),他是任何的报文段被丢弃前在网络中的最长时间。对于一个具体实现所给出的MSL值,处理上是,当tcp执行一个主动关闭并发回最后一个ACK,该连接必须是在TIMEWAIT状态下,停留时间是2倍的MSL,这个连接必须要在2MSL结束之后才可被使用。TIMEWAIT状态也被成为2MSL等待状态。我就记得题目文联TIMEWAIT所以说了一下。
5.这个比较简单,可以自行了解一下。
6.这是一道css的题目,要抓住重点,题目说了是不定高度,所以:我们可以用flex(伸缩盒子),table-cell(display中),position中可以把父元素的position设置为relative,子的是absolute来实现,并用的就是transform;如下面的截图:

7.没啥,就是闭包,都知道是123;注意一下,输出之后的控制台还会返回一个数字,那个应该是setTimeout的值,要不就是id。好了该吃饭了。
最后:没错,我又来参加秋招了,不过忙着实习和上课,还没来得及准备就开始了,之后还会像春招一样和大家分享,多多指教,写了很久☺不喜欢就不看哈。
#网易##笔试题目##题解#
全部评论
翻了题主了帖子,感觉好艰辛...微电子大三,明天面头条的安卓..
点赞 回复
分享
发布于 2019-03-08 02:15

相关推荐

base&nbsp;北京时长:54min总体感受:面试官非常和蔼,交流很愉快,面试很愉快,唯一的不足之处就是我太菜了,基础不扎实第一次面大厂,感觉面试官经常提出一些有深度的思考,我认为这也是我们新手自学过程中应该掌握的一个技能,自己去提问自己,自己去挖掘自己不会的地方,不要得过且过,不要想着混过去(菜),要自己拷打自己,自己打磨自己1.自我介绍2.介绍第一个项目3.第一个项目提问-&nbsp;处理功能哪里调用的-&nbsp;制作证件照需要给它什么参数吗?-&nbsp;图片的上传是怎么做的?它会给你一个SDK/插件/库&nbsp;&nbsp;吗?-&nbsp;前后端都是你一个人做的吗?-&nbsp;网站的登录怎么实现的?-&nbsp;这是一个toc的项目,那项目的SEO有优化吗?-&nbsp;token存在哪里?-&nbsp;登录状态怎么保持的?如何实现关闭浏览器,重新打开后,继续保持登录状态?-&nbsp;cookie是怎么存的?-&nbsp;后端怎么做的?用Node写的吗?4.介绍第二个项目5.第二个项目提问-&nbsp;用户在线,离线状态,是怎么处理的?后端的逻辑是怎么判断用户是离线还是在线的?-&nbsp;项目用到的框架-&nbsp;了解react&nbsp;hooks吗?6.八股文-&nbsp;JS的原型链-&nbsp;typeof&nbsp;和&nbsp;instanceof&nbsp;的区别?-&nbsp;typeof的缺点?-&nbsp;浏览器缓存-&nbsp;你说到强缓存,那浏览器是如何判断该资源在浏览器缓存中是否有对应的缓存的?-&nbsp;v-for&nbsp;的&nbsp;key的作用?-&nbsp;vue组件传值方法7.共享屏幕写代码-&nbsp;promise封装setTimeout,打印一个1&nbsp;1&nbsp;1-&nbsp;数组扁平化8.反问-&nbsp;前端学习方法-&nbsp;如何成为一个合格的前端工程师(你现在的目标是先把基础打扎实了)-&nbsp;如何看待AI-&nbsp;下次面试的时间问题挺简单的,都是常规的问题,但是我准备的不充分,收到电话约面,就直接约第二天了,没啥时间准备,还是第一次面大厂,应该是凉了,继续加油,把基础打好,不要再出现写代码写不出来的情况了,狠狠地把手写和leetcodehot100&nbsp;刷爆!!!这几天会把promise相关手写和常见工具函数的手写整理好后分享出来,很感谢牛客上这么多老哥分享的面经,大家一起加油!#我的失利项目复盘##我的实习求职记录# #滴滴# #面经#
点赞 评论 收藏
转发
点赞 6 评论
分享
牛客网
牛客企业服务