• 阿里实习笔试面试


    转自:http://blog.pixelnfinite.com/archives/211

    在线笔试部分

    在线笔试还是挺方便的,随意找一个小时撸完了,下面是一些有印象的题目。

    • flatten函数实现,将一个数组摊平。比如[1,[2,3,[4,5]]] => [1,2,3,4,5]
    • isDuplicate,检验arguments中有没有重复元素,返回bool值。
    • loadScript,异步加载js实现
    • cookie实现,包括get, set, delete
    • 向ul中插入若干条li的实现,这个没来得及写,性能优化上需要考虑

    随意水了一发,过了一个月收到了面试通知,于是欢乐地跑去新街口面试了。

    面试

    一面

    一面是个帅哥啊啊啊,估计中午吃的麦当劳还有麦旋风的杯子2333。人挺好,有的没答出来也没不耐烦啥的。旁边一个面试官面了两个我才结束,问的还挺细的,大致问题如下。

    HTML
    • doctype标签
    • html5有哪些新标签
    CSS
    • css选择器和顺序
    • css margin消除浏览器区别
    • position标签
    • inline和block区别
    JS
    • 面向对象的特点
    • addEventListener和attachEvent(bool参数)
    • 事件event对象
    • 设计模式
    • 闭包具体实现
    • 闭包的缺点
    • 继承的实现
    • 跨域和jsonp原理
    • lazyload
    • 原生DOM选择器
    • 事件捕获冒泡
    • Nodejs
    其他
    • 前端发展最新趋势
    • 前端性能优化
    • 印象最深的项目

    二面

    二面是圆心面的,后来才知道是淘宝UED的boss。m( _ _ )m

    问的倒是不多,主要看我最近做的一个项目,让我手写一下设计模式,具体怎么实现的,然后就大概问了下怎么学习的云云。

    三面

    回到等待室还没坐下来就收到三面通知了。三面是书恒,很有魅力的一个HR。感觉轻音体柔23333。

    也就是问了下个人情况,在学校社团任职的情况,对于淘宝前端开发的看法和建议等等。

    flatten函数实现,将一个数组摊平。比如[1,[2,3,[4,5]]] => [1,2,3,4,5]

    flatten:function(ac) {
      var array = [];
      var group = this.arr;
      if(ac) group = ac;
      for (var i = 0; i < group.length; i++) {
        if(group[i] instanceof Array) {
          array = array.concat(this.flatten(group[i]));
        }
        else {
          array = array.concat(group[i]);
        }
      }
      return array;
    }
    var arr = [1,[[4,5,6],2,[[[7,8,9]]],3]]; //转成一位数组:[1, 4, 5, 6, 2, 7, 8, 9, 3] 
    function f(arr){ 
        if(Object.prototype.toString.call(arr) != '[object Array]')  //判断arr是不是数组 
            return; 
        var newArr = []; 
        function fn(arr){  
            for (var i = 0; i < arr.length; i++) {//遍历数组 
                if(arr[i].length){//判断是不是多维数组 
                    fn(arr[i]);    //递归调用 
                }else{ 
                    newArr.push(arr[i]); 
                } 
            } 
        } 
        fn(arr); 
        return newArr; 
    } 
    console.log(f(arr)); 

    数字类型转千分位表示

    var num = 123456789.9; //结果转成千分位表示 123,456,789.9 
    function f(num){ 
        if(typeof num != 'number') 
            return; 
        num += ''; 
        if(num.indexOf('.')!=-1){ //判断是否存在小数 
            return fn(num.split('.')[0])+'.'+num.split('.')[1]; 
        }else{ 
            return fn(num); 
        } 
        function fn(newNum){ 
            var str = ''; 
            var l = newNum.length; 
            while(l>3){ 
                str = ','+newNum.substring(l-3,l) + str; 
                l = l-3; 
            } 
            str = newNum.substring(0,l) + str; 
            return str; 
        } 
    } 
    console.log(f(num)); 

    解析url:var str = 'http://s.weibo.com/weibo/Aralic?topnav=1&wvr=6'获得参数名和参数值

    function f(url){ 
        var l = url.indexOf('?'); 
        if(l!=-1){ 
            var obj = {}; 
            var arr = url.substring(l+1,url.length).split('&'); 
            for(var i = 0; i<arr.length; i++){ 
                obj[arr[i].split('=')[0]] = arr[i].split('=')[1]; 
            } 
            return obj; 
        } 
    } 
    console.log(f('http://s.weibo.com/weibo/Aralic?topnav=1&wvr=6')) 
  • 相关阅读:
    礼品卡导入可用
    mysql
    初级运维工程师面试题总结
    mysql聚合函数
    去任何一个公司的思想
    mysql数据库引擎
    导入MyEclipse项目乱码
    poj 1743 后缀数组 求最长不重叠重复子串
    hdu 1011 树形dp+背包
    poj 2342 && hdu 1520 树形dp
  • 原文地址:https://www.cnblogs.com/simonryan/p/4846147.html
Copyright © 2020-2023  润新知