首页 > 字节前端二面(实习)(已过)
头像
嚼嚼嚼
编辑于 2021-09-27 14:51
+ 关注

字节前端二面(实习)(已过)

一面是正式岗,二面转到实习岗了。
全程40min。

CSS

问题1:css的display属性的三个属性值block,inline和inline-block有什么区别?
答:①块元素独占一行,行内元素可以一行显示多个。②块元素可以设置宽高,行内元素不能设置宽高,只能靠内容撑开。③行内块元素一行可以显示多个,可以设置宽高。

JS

问题1:简单数据类型和复杂数据类型的区别?
答:简单数据类型的值直接保存在栈中,而复杂数据类型的值保存在堆中,栈中保存的只是复杂数据类型的堆内存地址。

问题2:简单数据类型有哪些?
答:ES5中有number,string,null,undefined,boolean,ES6新增了symbol(表示独一无二的值,它是JS的第七种数据类型,是一种类似于字符串的数据类型)。

问题3:ES6的bigint听过吗?
答:BigInt 是一种内置对象,它提供了一种方法来表示大于 253 - 1 的整数。这原本是 Javascript中可以用number表示的最大数字。BigInt 可以表示任意大的整数。上MDN链接 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt

问题***循环机制?

问题5:事件冒泡?
答:hh已经写腻了,如果想看答案可以翻翻以前的帖子。

问题6:线程与进程的关系?JS为什么是单线程的?
答:①线程是包含在进程中的,线程其实就是一个指令序列,如果加上计算机分配给它的资源(如内存等)之后它就是一个进程。②可以设想一个场景:JS是多线程的,如果几个线程同时对一个DOM节点进行操作,浏览器该怎么处理呢?为了避免这种冲突JS设计为单线程。

计网

问题1:HTTP的请求方法?get,post的区别?
答:有很多种,最常见的是get和post,还有其他的比如HEAD,PUT,DELETE等(具体参考HTTP权威指南)。get,post区别推荐阅读 https://www.cnblogs.com/logsharing/p/8448446.html

编程题

先是把一面没写出来的一题给写了。

题目2:查找重复元素:找出数组中重复出现过的元素(不考虑返回顺序)

我的解法:遍历一遍,如果有重复出现的元素就加入res数组中,最后再对res去个重。

写完面试官说时间复杂度比较高(O(n^2)),可以用哈希表,一次遍历记录出现次数,就可以把时间复杂度降下来(O(n))
var findRepeatChar = function(arr) {
    const len=arr.length;
    const hash=new Map();
    //遍历一次记录每个元素的出现次数
    for(let i=0;i<len;i++){
        if(!hash.has(arr[i])){
            hash.set(arr[i],1);
        }else{
            let count=hash.get(arr[i]);
            count++;
            hash.set(arr[i],count);
        }
    }
    //找出重复出现的元素并返回
    const res=[];
    for(let key of hash.keys()){
        if(hash.get(key)!==1){
            res.push(key);
        }
    }
    return res;
};
console.log(findRepeatChar([1,2,4,4,3,3,1,5,3]));

题目3:这题我好像在ES6书上看过,但是不记得了,就老老实实说不会ES6hhh



更多模拟面试

全部评论

(16) 回帖
加载中...
话题 回帖