专业编程基础技术教程

网站首页 > 基础教程 正文

前端校招面试者简历这么厉害,怎么测试实力深浅?

ccvgpt 2024-11-26 00:54:33 基础教程 1 ℃

鉴于太多新入行的朋友理论知识太扎实,简历太精彩(海外留学生、硕士研究生一大把),特出了几个手写题目,不求每个都作对,面试过程都是先问理论,如果答的不错的话再要求写代码。

以下部分题目有参考答案

前端校招面试者简历这么厉害,怎么测试实力深浅?

变量提升

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

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吗

Tags:

最近发表
标签列表