有赞前端面经

17 篇文章 0 订阅

一面

  • 实习经历等
  • 数据类型,基本和引用
  • 从url到页面展示发生了什么?
  • 状态码
  • 缓存相关
  • es6知道什么?箭头函数和普通函数有什么不同?
  • promise用过吗?做过什么事
  • 重绘和重排,如何避免重排
  • es6的set和map,以及使用场景
  • react生命周期,新的和旧的
  • css垂直居中
  • get和post的区别
  • 同源策略以及跨域方式
  • js文件的加载会导致页面的阻塞吗?

三道代码题

  • 解析url为object
  • 上一个的修改
  • 给函数绑定多个事件,封装方法
//1.
const testURL1 = 'http://www.youzan.com?name=coder&age=20';
//{name: coder, age: 20}
function parseQueryString1(url){
	let arr1={};
    let arr2=url.split("&");
    arr2.map((item)=>{
        let sh=item.split('=')[0];
        arr1[sh]=item.split('=')[1];
    });
    return arr1;
}
//2.
const testURL2 = 'http://www.youzan.com?list[]=a&list[]=b';
// &list[]=a&list[]=b
//list: ['a', 'b']
function parseQueryString2(url) {
    let arr1 = [];
    let uu = url.split('?')[1];
    let arr2 = uu.split('&');
    let arrName = arr2[0].split('[')[0];
    arr2.map((item)=>{
        let temp = item.split('=')[1];
        arr1.push(temp);
    });
    let obj = {};
    obj[arrName] = arr1;
    return obj;
}
//3.
// 返回值示例:
// {
//  "add1"
// "add2"
// "delete"
// "add2"
// }

//思路:存储方式
/*
    query{
        add:[
            add1: 1,
            add2: 2
        ],
        del:[
            del1: 1
        ]
    }
 */
const eventBus = (function() {
    function listen(event, fn) {
        // code
    }

    function trigger(event) {
        // code
    }

    function remove(event, fn) {
        // code
    }

    return {
        listen,
        trigger,
        remove
    };
})();

const add1 = () => {
    console.log('add1');
}
const add2 = () => {
    console.log('add2');
}
const remove = () => {
    console.log('delete');
};

eventBus.listen('add', add1);
eventBus.listen('add', add2);
eventBus.listen('remove', remove);
eventBus.trigger('add');
eventBus.trigger('remove');
eventBus.remove('add', add1);
eventBus.trigger('add');

二面

  • node.js中express的使用
  • node.js中间件
  • http传输的是文本还是二进制
  • 如果传输的是文本,那么体积会是非常庞大,那应该怎么做呢?
  • 压缩文本,要怎么压缩,要是让你设计,怎么设计呢?
  • 分割文本进行传输,怎么分割呢??
  • 还有一堆主观性的问题,比如大学最骄傲的事情等等…
  • 让你自己做补充,挑自己比较擅长,有一定技术含量的方面进行阐述一下,讲的好了的话肯定会是加分项。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值