阿里巴巴2020暑期实习——前端电话一面回顾

一、投递信息

投递时间:2020年4月3日
部门:阿里云数据库产品与事业部
岗位:前端开发工程师
工作地点:北京
信息来源:微信群
面试时间:2020年4月9日晚上19:00
面试方式:电话面试+笔试
面试时长:1小时23分钟

二、面试官问题

  1. 自我介绍
  2. 你对前端是感兴趣并且想往这方面发展是吗?
  3. 介绍圈存机项目以及遇到的困难,怎么解决的?
  4. 介绍韵律助手小程序以及背景是什么?
  5. 小程序底层原理
  6. 遇到问题怎么解决?
  7. HTML5的新特性
  8. localStorage
  9. 第一次访问有引导页,下一次访问引导页不出现,就是关闭引导页,怎么实现?
  10. flexbox
  11. call、apply、bind
  12. 学习新知识的渠道
  13. 你看是书是纸质书还是电子书?
  14. 你说一个你周边的你觉得最成功的人的案例,说一下你最欣赏她的哪写方面?
  15. 笔试1
/**评测题目: 请用尽可能多的方法实现一个圣杯布局-**/
/**三栏布局,main在中间显示,但HTML结构中Main在最前面**/
<style>
	.container{
      display: flex;
      margin: auto;
	}
	.main{
	float
	}
</style>
<div class="container">
  <div class="main"></div>        
  <div class="sub"></div>        
  <div class="extra"></div>
</div>
  1. 笔试2
// 1. 具备 on 方法绑定事件
// 2. 具备 off 方法解绑事件

function EventEmitter () {
  // TODO
    const listeners = [];
	on : function(eventName, callback){
      //要保存eventName这个事件和callback这个回调
      listeners.push({eventName, callback});
  	}
    off : function(eventName) {
      //不再保存eventName这个事件
      
      listeners.pop({eventName});
    }
    trigger: function(eventToTrigger) {
      //循环已经注册的所有监听,判断与eventToTrigger匹配的事件,并执行对应的callback
      listeners.forEach(listener=>{
          if (listener.eventName === eventToTrigger) {
            if (listener.callback) {
              listener.callback(eventToTrigger)
            }
          }
      })
    }
}

var emitter = EventEmitter();

emitter.on('foo', function(e){
  console.log('listening foo event 1', e);
});

emitter.on('foo', function(e){
  console.log('listening foo event 2', e);
});

emitter.on('bar', function(e){
  console.log('listening bar event', e);
});

// 监听全部事件
emitter.on('*', function(e){
  console.log('listening all events');
});

emitter.trigger('foo', {name : 'John'});
emitter.trigger('bar', {name : 'Sun'});
emitter.trigger('*', {name : 'Sun'});
emitter.off('foo');

原创文章 155 获赞 16 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41796393/article/details/105791398