阿里笔试经验分享

开始是一道笔试题,开始我写的代码其实并不好,连class语法都写错了hhh😬😬😬😬😬
//实现一个发布订阅模块,subscribe,unsubscribe,publish接口分别用来实现订阅,取消订阅,和发布事件的功能
//代码尽可能设计考虑更多的边界条件
class Pubsub {
        constructor(){
            this.events = {}
        }

    subscribe(event,action){
            if(!event||!action){
                return;
                //参数为空这个当时也没写
            }
            //这里我原来只写的是 this.events[event],但这样确实可能会访问到原型上的方法,不妥
            if(!this.events.hasOwnProperty(event)){
                this.events[event] = [action]
                return
            }
            this.events[event].push(action)
             return action
    }
    unsubscribe(event,action){
            if(!event&&!action){
                this.events = {}
                return
            }
            if(!action) {
                this.events[event] = []
                return
            }
            // if(!action.name){  这个部分是hr后提的额外需求,取消匿名函数,但我这个方法可能定是错的,正确方法见下:
            //     //通过action.name判断是否为匿名函数,匿名函数的话就通过将其转化为字符串进行比较
            //     this.events[event] =  this.events[event].filter(fn=>fn.toString().trim()!==action.toString().trim())
            //     return
            // }
            this.events[event] =  this.events[event].filter(fn=>fn!==action)

        }
    publish(event){
          if(this.events.hasOwnProperty(event)) {
              this.events[event].forEach(fn=>fn())
          }
    }
}
let ob = new Pubsub();

ob.subscribe('add', (val) => console.log(123));
ob.subscribe('add', (val) => console.log(123));
// ob.unsubscribe('add',(val) => console.log(123))
//正确方法,给subscribe添加返回值,为函数应用
let temp  = ob.subscribe('add', (val) => console.log(123));

ob.unsubscribe('add',temp)

ob.publish('add');

//结果,123,123
阿里的笔试是在线进行的,他们有一套在线编码视频应用,有的笔试官会要求你和他视频,有的不会,然后你也可以请求自己在本地编辑运行测试后再把代码贴上去,但我这次是让我直接在阿里的编辑器里写,
还是挺不方便,主要是没语法提示了哈哈,看来还是平时太依赖webstorm,真大佬都用记事本(逃
写完后还问了一些技术问题。
建议大家准备笔试最基本最重要的还是要熟悉各种数组和字符串的操作方法呀!这种考察很多的!

#阿里巴巴##前端工程师##实习##笔经#
全部评论
的确没有前端啊😂
点赞 回复 分享
发布于 2021-03-06 14:59
楼主投递的是前端岗位吗?官网的公告上说,前端不在需要笔试的岗位之列啊
点赞 回复 分享
发布于 2021-03-06 11:53

相关推荐

不愿透露姓名的神秘牛友
07-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 15:37
点赞 评论 收藏
分享
醉蟀:你不干有的是人干
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
4
12
分享

创作者周榜

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