2021提前批字节跳动前端一面总结

第一次正式面试,等面试官的时候紧张到发抖,手心都出汗了,但是面了一会会轻松很多,面试官很温柔,会一步步引导。
1.自我介绍和项目介绍,这一块会问道很多简历里面提到的,所以把简历里面涉及到的知识点复习一下,复习深一点。
这一块问到了我对称加密和非对称加密。
如何使别人获取不到cookie的值
答:设置http-only字段
3.同源策略
4.跨域的方法
我回答了JSONP
CORS,CORS里面我提到了一个 Access-Control-Allow-Origin只能设置通配符或者一个域名,然后他说想设置多域名这个问题很好解决,问我如何解决,给了点提示,最后方法是先判断再设置。
这里说到cookie默认不允许携带cookie,那么如何允许CORS允许携带跨域,答案是服务器设置响应头Access-Control-Allow-Credentials ,但其实请求时也应该设置这个参数。
document.domain
window.name + iframe,追问window.name中window是iframe的还是跨域的window
代理的原理说了服务器没有同源策略
proxy
5.写一个函数
function log(arr){}
arr=[‘a’,‘b’,‘c’];
我是这样写的,其实是对的,但是牛客网老有一个红色的波浪线提示错误,搞的我慌的一批

function log(arr) {
        for(let key in arr){
            setTimeout(function(){
                console.log(arr[key])
            },1000*key)
        }
}

面试官让不用let再写一个,我说了立即执行函数
但是立即执行函数错了好多次,慢慢提示才写对的

function log(arr){
 	for(var key in arr){
 		(function(key){
 			 setTimeout(function(){
            console.log(arr[key]);
        },1000*key)
 	    })(key)
 	}
}

6.js的事件队列
同步任务
宏任务
微任务
判断宏任务微任务队列是否执行完成,是每执行一个宏任务就判断是否执行完毕还是代码执行完毕再判断,这一块答的不太好
7.写了一个instanceof
写法我背了所以写出来,但是原理问的很深,所以还要再复习一遍。

function myInstanceof(left,right) {
    let proto = left.__proto__;
    let prototype = right.prototype;
    while(1){
        if(proto===null){
            return false;
        }
        if(proto===prototype){
            return true;
        }
        proto = proto.__proto__;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值