首页 > 百度前端一二面经
头像
AhaAha
编辑于 2020-04-14 21:57
+ 关注

百度前端一二面经

4.12百度连续两面,暂时想到那么多,后面想到再补充
百度一面

1.说一下快排

2.介绍一下状态码

3.两栏布局(一列固定一列自适应)还有两边有空隙(空隙在不同屏幕是固定的怎么实现)

4.元素的垂直水平居中?有考虑过兼容写法吗?

5.本地存储(cookie、sessionstorage、localstorage),有考虑过网络攻击处理吗?写项目的时候使用到了哪些?

6.vue的双向数据绑定原理

7.vue的父子通信

8.说一下怎么消除递归

9.后台给你返回一个很多层叠的数据,你会怎么设计一个数据结构(类似{name:"xx",{id:"xx",{sex:"xx"}}}json格式转对象这种)

10.js内存泄漏

11.跨域(iframe缺点)

12.有使用过webpack吗?

13.你们团队合作流程是什么?多少人?

14工作室使用的技术栈
15.js数据类型分类
16.深拷贝和浅拷贝的区别

百度二面

1.获取当前时间,并格式化化为‘yyyy-mm-dd’格式
function getNowFormatDate() {
    var date = new Date();
    var seperator = "-";
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9) {
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9) {
        strDate = "0" + strDate;
    }
    var currentdate = year + seperator + month + seperator + strDate;
    return currentdate;
}
再补充一个可以传入时间格式的通用格式化时间函数
function formatDate(date, fmt) {
    //获取年份
    // y+ -->y的个数(1个或多个)
    if (/(y+)/.test(fmt)) {
        //                ‘yyyy’,2019+''变成字符串2019,后面取个数  2019/019/19替换前面yyyy
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    // 获取
    let o = {
        'M+': date.getMonth() + 1,
        'd+': date.getDate(),
        'h+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds()
    };
    for (let k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
            let str = o[k] + '';
            fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
        }
    }
    return fmt;
};

// 比如传进来是4m,返回04m
function padLeftZero(str) {
    return ('00' + str).substr(str.length);
};

var date = new Date();
console.log(formatDate(date,"yyyy:MM:dd"));
2.[2, 50, 8, 20] 升序排列
let arr =[2, 50, 5, 20];

arr.sort((a,b)=>a-b);
3.获取url里的参数,比如www.baidu.com?a=1&b=2
const parseQueryString = url => {
    var json = {};
    var arr = url.substr(url.indexOf('?') + 1).split('&');
    arr.forEach(item => {
        var tmp = item.split('=');
        json[tmp[0]] = tmp[1];
    });
    return json;
}
let result = parseQueryString("www.baidu.com?a=1&b=2");
console.log(result);
4.'abc123'用正则提炼数字
// 第一种
let string = "abc123ds45";
let reg = /\d+/g;
let result = string.match(reg);
console.log(result);//返回的是数字数组,可以再讲数组转为字符串

// 第二种
let result2 = string.replace(/\D+/g,"");
console.log(result2);
5.写一个方法,获取参数的数据类型
function type(target) {
    var typeStr = typeof (target),
    toStr = Object.prototype.toString,
    objStr = {
        "[object Object]": "_objectObject_",
        "[object Array]": "_arrayObject_",
        "[object Number]": "_numberObject_",
        "[object Boolean]": "_booleanObject_",
        "[object String]": "_stringObject_"
    }
    if (target === null) {
        return null;
    }
    //原始数据类型+function类型
    if (typeStr !== "object") {
        return typeStr;
    } else {
        return objStr[toStr.call(target)];
    }
}

function a() {

}
console.log(type(a));
6.深度clone一个对象

7.状态码

8.箭头函数和普通函数区别

9.平时又遇到什么难点吗

10.解释一下闭包

更多模拟面试

全部评论

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

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐