春招之路 -腾讯前端春招实习生面试(持续更新中)

腾讯前端春招实习生面试

  • 一面面试题
    • 为什么会选择前端
    • 是否熟悉数据结构与算法
    • 浏览器从输入url到最终浏览器页面的展示过程
    • JS闭包
    • 原生AJAX
    • 性能优化
    • JSON的优缺点
    • 403状态码
    • Cookie
    • JS如何体现继承
    • 同源策略(JSONP)
    • 语义化
    • new操作符
    • 谈一下对TCP/IP的了解

一面面试题

腾讯是我接到的第一个大厂面试,过于紧张导致一面GG。个人感觉腾讯的面试覆盖面很广,会考察后端的有关知识,但鉴于博主后端太菜所以面试官还是以前端相关知识为主考察了我。好啦,下面就来看腾讯的面试题叭!

为什么会选择前端

博主目前大三,大一的时候参加校ACM集训队,一直在学习算法与数据结构;大二的时候有学长邀请我一起做项目,我负责前端的开发,因此接触了前端;后来应学校的要求写了几个小程序,因此就开始走上了前端之路(但实际上一直在咸鱼23333)

是否熟悉数据结构与算法

估计是由于博主之前大一参加ACM,所以问了这个问题。我列举了几个简单的数据结构与算法,数据结构比如二叉树之类的吧啦吧啦,算法比如哈希,背包之类的吧啦吧啦。

浏览器从输入url到最终浏览器页面的展示过程

(答案待更新)

JS闭包

(答案待更新)

原生AJAX

(答案待更新)

性能优化

(答案待更新)

JSON的优缺点

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据格式。

  • 优点
    1、数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小 。
    2、易于解析这种语言, 客户端javascript可以简单的通过eval()进行JSON数据的读取。
    3、支持多种语言,如Java、JS、PHP等等。
  • 缺点
    1、没有错误处理
    在JSON中没有JSON调用的错误处理。如果动态脚本插入有效,你将能调用并完美地获得响应。如果没有插入,就什么也不会发生。它只是默默地失败了。例如,你无法从服务器捕获404错误,也不能取消或重新启动请求。然而,在等待合理的时间之后,你就已经超时。
    2、安全性
    JSON的另一个主要缺点是,如果与不受信任的服务或不受信任的浏览器一起使用它会非常危险;因为JSON服务返回包含在函数调用中的JSON响应,如果它将与不受信任的浏览器一起使用,将由浏览器执行它可以被黑客入侵,这使托管Web应用程序易受各种攻击。

403状态码

在面试中经常可能会遇到401状态码与403状态码区别的问题。

  • 401状态码
    401 - 未授权 Unauthorized: 由于凭据无效,访问被拒绝。
  • 403状态码
    403 - 拒绝访问 Forbidden:资源不可用,服务器理解客户的请求,但拒绝处理它。

我个人理解401与403的区别就是:401错误是未登录,而403错误为服务器直接拒绝掉你的访问了。

Cookie

简单来说,Cookie就是网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。
Cookie是一个小文本文件,一般来说不会大于4K。

春招之路 -腾讯前端春招实习生面试(持续更新中)_第1张图片
整个过程大概是这样样子的:
首先浏览器向服务器请求数据,浏览器响应后,返回数据并且返回Cookie一个Session id(Session是唯一滴!),然后浏览器记住该id,并在接下来的访问中使用该id进行身份验证~
具体的Cookie详解大家可以去搜索一下其他博客~

JS如何体现继承

(答案待更新)

同源策略(JSONP)

(答案待更新)

语义化

什么是语义化?就是用合理、正确的标签来展示内容,即尽可能少的使用像div、span这种没有明确语义的标签,多使用像header、footer、article等标签。
语义化优点:

  • 易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。
  • 有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
  • 方便其他设备解析,如盲人阅读器根据语义渲染网页
  • 有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。

new操作符

// 1、创建一个空对象
var o = new A();
// 2、绑定原型链,把空对象的原型链指向A对象的protoType
o.__proto__ = A.prototype;
// 3、调用A的call,将其中的this指向刚创建的空对象
A.call(o);
// 4、把这个o返回给a,完成var a = new A()

谈一下对TCP/IP的了解

(答案待更新)

你可能感兴趣的:(前端)