道招

原创的几个前端校招面试题

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

原创的几个前端校招面试题

鉴于太多新入行的朋友理论知识太扎实,简历太精彩,特出了几个手写题目,不求每个都作对,面试过程都是先问理论,如果答的不错的话再要求写代码。

变量提升
console.log(1, test);
var test = 1;
console.log(2, test);
function test(){
 console.log(3, test);
}
test();

实测没有全部做对的,第三个console不会打印,因为test()会报错

内存堆栈
var a = 1;
var b = a;
var b = 100;
console.log(a, b);

var aa = [22, 33]
var bb = aa;
bb[0] = 44;
console.log(aa, bb)
for循环 分别打印 0 1 2 3 4
for(var i=0;i<5;i++){
    setTimeout(function(){
        console.log(i)
    },1000*i)
}
let i = 0; ...
for(var i=0;i<5;i++){
    (function(i){
        setTimeout(function(){
            console.log(i)
        },1000*i)
    })(i)
}
考查valueOf、toString

附加题 前面几个手写答的不错(至此已通过面试)的才会问 实现一个a,使得 a + 0 = 1,再次执行a + 0 = 2,一次类推

var a = {
    i: 0,
    valueOf() {
        return this.i++; // 此处额外在定一个变量也行,不要求用this
    }
}

console.log(a + 0); // 0
console.log(a + 0); // 1
console.log(a + 0); // 2

file

addEventListener(event, function, useCapture)
mouseenter mouseover

mouseover:当鼠标移入元素或其子元素都会触发事件,所以有一个重复触发,冒泡的过程。对应的移除事件是mouseout mouseenter:当鼠标移除元素本身(不包含元素的子元素)会触发事件,也就是不会冒泡,对应的移除事件是mouseleave

数组去重
考查HTTP实战
简单请求

简单请求需满足以下两个条件

  1. 请求方法是以下三种方法之一: HEAD GET POST
  2. HTTP 的头信息不超出以下几种字段 Accept Accept-Language Content-Language Last-Event-ID Content-Type: 只限于 (application/x-www-form-urlencoded、multipart/form-data、text/plain)
复杂请求

非简单请求即是复杂请求

在跨域的情况下,非简单请求会先发起一次空body的OPTIONS请求,称为"预检"请求,用于向服务器请求权限信息,等预检请求被成功响应后,才发起真正的http请求。

跨域的原因和常见解决方案
对tcp三次握手的理解
输入网址到渲染过程

DNS解析 TCP连接 发送HTTP请求 服务器处理请求并返回HTTP报文 浏览器解析渲染页面 连接结束

浏览器重排重绘的理解
css布局position的理解
css盒子模型
了解BFC吗
更新时间:
上一篇:下一篇:

相关文章

关注道招网公众帐号
道招开发者二群