虾皮前端一面凉经

今天上午面试虾皮,前面一些基础知识问的倒都不难,能记得的大概包括
1.进程和线程的区别,引出浏览器线程
2.js如何解决异步问题,引出事件循环
3.浏览器缓存,强缓存和协商缓存头部
4. http状态码,304代表什么
5.css盒子
6.js基本数据类型,他们分别存储在哪儿
7.数组,链表,队列,栈,并且介绍他们的应用场景
8.前端安全(没答出来)
9.let const var
10.TCP和UDP区别
11.set map
12.web worker
13.什么是稳定的排序算法,稳定排序算法有哪些
然后两道看代码说结果的题,都没答出来,很尴尬,路过的有人能帮我解答下吗

const objA = { a: 1 };
const objB = { b: 2 };
const arrA = [objA];
const arrB = [objB];

const v1 = arrA.concat(arrB);
const v2 = arrA.concat(...arrB);
const v3 = arrA.push(arrB);
const v4 = arrA.push(...arrB);
console.log(v1);
console.log(v2);
console.log(v3);
console.log(v4);

function Foo() {
    log = function () {
        console.log(1);
    };
    return this;
}
Foo.log = function () {
    console.log(2);
}
Foo.prototype.log = function () {
    console.log(3);
}
var log = function () {
    console.log(4);
}
function log() {
    console.log(5);
}

Foo.log(); //2
log(); //4
Foo().log();//1 
log(); //1
new Foo.log();//2
new Foo().log();//3

还有最后一道题,非递归实现快速排序(又不会,只会递归实现,哎,凉透了)
总之凉凉


#虾皮提前批##面经##Shopee##校招##前端工程师#
全部评论
笔试结束后多久约的面试呀
1 回复 分享
发布于 2021-08-03 12:45
Foo.log(); ,函数也是一种对象,对象上挂载了log属性,所以第一个输出2 log();  因为13行定义了log函数,所以是4 Foo().log(); Foo() 由于没有new操作符,返回的this为global,就是window,window.log() 因为Foo函数中log没有使用定义变量操作符var const 或 let 去定义,所以为全局变量,覆盖了13行的log函数,输出1 log() 输出1,因为上一条 new Foo.log() 与1同理 new Foo().log();//3 调用了Foo原型上的log函数,输出3
1 回复 分享
发布于 2021-08-01 21:03
[{a: 1},{b:2}],[{a: 1},{b:2}], 2,3, push返回值为数组长度,所以v3v4是这个表现
1 回复 分享
发布于 2021-08-01 20:57
楼主请问事件循环会有nodejs里面的嘛
点赞 回复 分享
发布于 2021-08-02 15:31

相关推荐

一面 1.自我介绍,为什么学习前端,平时用哪些AI,怎么用,感觉用ai有什么好处,了解ai幻觉吗,平时有没有遇到过,如何解决。了解prompt吗,如果ai表现不好会怎么做2.实现两栏布局 答了flex grid 和绝对定位,问flex具体如何实现3.浏览器访问网页的过程4.普通函数中在定时器里输出this指向5.关于项目的提问,如何实现弹幕滚动,动画什么实现(rAF),和定时器比较优势在哪,ts使用有什么好处,如果不符合ts类型会在哪里发生错误(编译时还是运行时)前后端字段不统一会在哪里发生错误6.包管理工具哪个用的多(pnmp),有什么优势package.lock有什么作用,为什么会发生包安装了不可用或冲突7.使用哪个框架多,为什么组合式api和options比较有什么优势什么时候需要使用ref使用框架实现一个功能点的流程,组合式api如何使用?(记不太清了)8.如何实现路由鉴权token前端有加密吗(没)http和HTTPS区别,详细解释非对称加密9.手撕 买卖股票的最佳时机③ 有效的括号 手写eventEmitter(选做)二面:拷打项目,如何通过token辨别是哪个用户,jwt原理,反转对象键值对,如何区分对象和数组,辨别数组方法,遍历二叉树最大值非递归,promise的输出new promise(resolve,reject)=>{log(1)resolve(true)log(2)throw new err(‘err’)log(3)reject(false)}.catch(err=>log(err)).then(res=>log(res))二面太紧张了,简单题没打上来😭还是基础不够扎实,感觉准备充分点还是有机会的
发面经攒人品
点赞 评论 收藏
分享
评论
5
78
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务