[2021前端开发实习生]腾讯云 二面面经 3.26

腾讯云 二面面经

  1. 岗位是在深圳这边,深圳的前端开发实习生,先简单做一下自我介绍。

  2. 请问是哪里人?

  3. 为什么想到来腾讯实习呢?

  4. 你女朋友是学什么的?她是哪里人?

  5. 如果你过来实习,你们就会异地,到时候怎么办?

  6. 目前有其他offer吗?

  7. 打算读研吗?

  8. 为什么想做前端呢?

  9. px跟rem的区别是什么?

    这里仅提到了概念上的区别,多讲一些实际的应用场景,就不需要问下题了。

  10. 具体应用场景是什么?

  11. 对话框居中展示应该怎么做?居中展示还有哪些解法?

    说了三种方案,第三种是文字,再多讲一种方案,然后每种方案说思路就行。

    要有列举一二三四,最后说列举了几点。面试官有不懂的再让他深入问。

  12. 我们要在页面上展示一个小图标,比如信号图标,这种实现的具体方式有哪些?

    1. 常规html使用img标签。
    2. 使用span em i 等小标签加入背景图片
    3. 字体图标
    4. svg标签
  13. 样式执行的优先级是什么样子的?

    !important > 行内样式 > ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

    我只答出了左边一半。

  14. 代码题:a 的结果是什么?如果不想改变 a 的结果,方法有哪些?

    var a = [1, 2, 3];

    var b = a;

    b.push(4);

    我只答出了方法1、3,后续面试官问我数组还有哪些API,是提示我如何解这道题而不是让我把API讲一遍。。。。说得也有点慢了。

    方法1:原始的for循环

    方法2:原生数组API:slice(),concat() 返回数组的拷贝,forEach

    方法3:ES6 的数组API:map

    方法4:JSON.parse(JSON.stringify(a)) 转字符串再转回对象

  15. 介绍下AJAX的原理,原生是如何实现的?

    要讲出:1. new XMLHTTPRequest

    1. open(methods, url)

    2. 区分Post和Get方法

    3. onreadystatechange 检测readystate状态,获取使用xhr对象的responseText,必要时使用JSON.parse

    4. 补充:如果使用了Promise封装,需要判断返回内容中的状态码,再调用resolve或者reject使Promise变化。

  16. Ajax过程中,301和304的区别是什么?

    301,官方示意永久性移动,表示请求的网页永久移动到了新的位置,服务器返回此响应(对ge3t或者head请求的响应),是会自动请求者转到新的位置。

    304,未修改,自从上次请求之后,请求的网页未修改过,但是请求者应继续使用原有的位置来进行以后的请求。

    在浏览器的性能优化当中,我们为了提升页面的打开速度,经常会将一些不长修改的文件,比如css文件,js文件,以及一些图片文件做缓存,以节省下载速度。浏览器的缓存有两种模式,一种是强缓存,一种是协商缓存。强缓存命中时不会向服务器发送请求。而协商缓存回想浏览器发送请求,但是浏览器不会发送返回的数据,而是读取本地缓存,这时,命中协商缓存的请求返回码就是304,表示使用本地缓存中的文件,不从服务器获取数据。

  17. 301和302的区别呢?

    301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。

    302重定向是临时的重定向,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。

    尽量使用301跳转:

    从网址A 做一个302 重定向到网址B 时,主机服务器的隐含意思是网址A 随时有可能改主意,重新显示本身的内容或转向其他的地方。大部分的搜索引擎在大部分情况下,当收到302 重定向时,一般只要去抓取目标网址就可以了,也就是说网址B。如果搜索引擎在遇到302 转向时,百分之百的都抓取目标网址B 的话,就不用担心网址URL 劫持了。问题就在于,有的时候搜索引擎,尤其是Google,并不能总是抓取目标网址。比如说,有的时候A 网址很短,但是它做了一个302 重定向到B 网址,而B 网址是一个很长的乱七八糟的URL 网址,甚至还有可能包含一些问号之类的参数。很自然的,A 网址更加用户友好,而B 网址既难看,又不用户友好。这时Google 很有可能会仍然显示网址A。由于搜索引擎排名算法只是程序而不是人,在遇到302 重定向的时候,并不能像人一样的去准确判定哪一个网址更适当,这就造成了网址URL 劫持的可能性。也就是说,一个不道德的人在他自己的网址A 做一个302 重定向到你的网址B,出于某种原因, Google 搜索结果所显示的仍然是网址A,但是所用的网页内容却是你的网址B 上的内容,这种情况就叫做网址URL 劫持。你辛辛苦苦所写的内容就这样被别人偷走了。302 重定向所造成的网址URL 劫持现象,已经存在一段时间了。不过到目前为止,似乎也没有什么更好的解决方法。在正在进行的谷歌大爸爸数据中心转换中,302 重定向问题也是要被解决的目标之一。从一些搜索结果来看,网址劫持现象有所改善,但是并没有完全解决。

  18. 介绍一下前端跨域的解决方法。

    先说有几种,再依次介绍。

  19. CORS这个方案了解吗,熟悉吗?要设置哪些字段?

  20. 平时抓包为什么会有个option的请求?

    OPTIONS请求方法的主要用途有两个:

    1、获取服务器支持的HTTP请求方法;

    2、用来检查服务器的性能。

    为什么会用到options请求

    预检请求是CORS中一种透明服务器验证机制。预检请求首先需要向另外一个域名的资源发送一个 HTTP OPTIONS 请求头,其目的就是为了判断实际发送的请求是否是安全的。

    详见阮一峰博客:跨域资源共享 CORS 详解

  21. 你同时学日语吗?是双专业吗?

  22. 你们不学英语,你英语过了几级?

  23. " DFDFD ".rightTrim() 如何定义?如何实现?

    如何定义是指:如何挂载到这个.后面可以触发的方法上。即使用:String.prototype.rightTrim()

  24. 怎么判断一个变量是不是对象?这个对象是{}类型的。

    除了instanceof还有吗?

    判断一个变量是不是一个纯对象,我们可以使用Object.prototype.toString方法进行判断

    Object.prototype.toString.call(obj) === '[object Object]'
    
  25. 说说DOM和BOM的区别?

    从定义上:范围上:

    document对象是DOM(Document Object Model)模型的根节点。 BOM包含DOM。

    BOM的核心是window,而window对象又具有双重角色,它既是通过js访问浏览器窗口的一个接口,又是一个Global(全局)对象。这意味着在网页中定义的任何对象,变量和函数,都以window作为其global对象。

    Bom包含诸多属性:frames(页面窗口)、history、location、navigator、screen、定时器、对话框、属性等。[2021前端开发实习生]腾讯云 二面面经 3.26_第1张图片

    详见博客:JS DOM和BOM的差异

  26. 可以讲一下都有哪些API。

  27. BOM有哪些对象?

  28. 地址栏中: index.html?img=1.jpg 如何拿到这个图片的地址并展示在网页中?

    window.location.href :在location对象下。获取后使用字符分割。

    JS获得这个图片地址,然后使用document.createElement 使用innerHtml写入图片再填入地址。

  29. 介绍一下JS的内存管理机制。

    js内存管理机制

  30. react和vue的区别是什么?

  31. vue的双向绑定原理了解吗?

    vue的双向绑定原理

  32. 介绍下http缓存的原理。

    一张图理解Http缓存

  33. http2.0的特性。

    http1.0_http1.1_http2.0的区别

    Http2.0协议

  34. 从地址栏中输入url到最后网页展示出来,请你尽可能详细介绍一下。

  35. TCP和UDP的区别是什么?

  36. LocalStorage、SessionStorage和cookie的区别是什么?

    这里回答不够完善,另外LocalStorage大小说错了,不知道在哪里看的错误答案。

  37. LocalStorage大小为20M?有做过具体测试吗?

  38. -10到10之间整数,三个数字之和为10,怎么做?比如0,1,9或0,2,8

    力扣第15题:三数之和:时间复杂度O(n²):使用双指针。

你可能感兴趣的:(面经)