首页 > 阿里巴巴前端实习生第一面(笔试+简单电话面试)
头像
wenjingyuer
编辑于 2021-02-25 17:22
+ 关注

阿里巴巴前端实习生第一面(笔试+简单电话面试)

  1. 笔试
    // 请尽量在半小时内完成作答
    
    // ====================
    // 题目:为字符串原型增加 reverse() 方法,调用后将自己倒序返回
    // 代码写在这里↓↓↓↓↓
    
    String.prototype.reverse = function () {
        return this.split('').reverse().join('')
    }
    
    // 代码写在这里↑↑↑↑↑
    console.log("123".reverse()); // "321"
    
    
    
    // ====================
    // 题目:有一个数组,里面只存在 * 和 字母,如 ['*', 'd', 'c', '*', 'e']。
    // 实现一个函数把这个数组中的所有星号移动到左边,所有的字母移动到右边,所有字母的顺序不能改变。
    function move(array) {
        // 代码写在这里↓↓↓↓↓
        let left = []
        let right = []
        array.forEach(item=>{
            if(item === '*'){
                left.push('*')
            }else {
                right.push(item)
            }
        })
        return [...left,...right]
        // 代码写在这里↑↑↑↑↑
    }
    const arr = ['*', 'd', 'c', '*', 'e'];
    move(arr);
    console.log(arr); // ['*', '*', 'd', 'c', 'e']
    
    
    
    // ====================
    // 题目:将字符串转为驼峰格式
    function change(string) {
        // 代码写在这里↓↓↓↓↓
        var str = string.split('-');
        for(let i = 1;i<str.left;i++){
            str[i] = str[i][0].toUpperCase() + str[i].substring(1)
        }
        return str.join('')
    
        // 代码写在这里↑↑↑↑↑
    }
    console.log(change("border-bottom-color")); // 输出 borderBottomColor
    
    
    
    // ====================
    // 题目:实现一个函数,比较两个版本号的大小。返回 1(大于)/0(等于)/-1(小于)
    function compareVer(ver1, ver2) {
        // 代码写在这里↓↓↓↓↓
        ver1 = ver1.split('.')
        ver2 = ver2.split('.')
        let sameCount = 0
        for (let i = 0;i<ver1.length;i++){
            if( parseInt(ver1[i])< parseInt(ver2[i])){
                return -1
            } else if( parseInt(ver1[i]) == parseInt(ver2[i])){
                sameCount++
            }
        }
        if(sameCount ===ver1.length ){
            return 0
        }
        return 1
        // 代码写在这里↑↑↑↑↑
    }
    console.log(compareVer("1.0.20", "1.1.0")); // 1.0.20 < 1.1.0 返回 -1
    console.log(compareVer("1.0.20", "1.0.3")); // 1.0.20 > 1.0.3 返回 1
    
    
    
    // ====================
    // 题目:实现一个函数,效果同 document.getElementById(通过遍历 node.childNodes 和 node.id 属性实现)
    function getElementById(findId) {
        // 代码写在这里↓↓↓↓↓
        var star  = document.body
        function find(node,id) {
            for (let item in Array.from(node.childNodes)){
                if( item.id === id){
                    return item
                }else {
                    return find(node.childNodes)
                }
            }
        }
        return  find(star,findId)
    
        // 代码写在这里↑↑↑↑↑
    } 

  2. 面试
    面试官很友好,对笔试代码进行了一些讲解,并对应提出一些问题,还问了一些项目的经历等等,阿里真不愧是大公司啊,面试套路完全不一样,希望接下来的面试顺利吧!
  3. 面试结果下午就出来了,emmm凉了哈哈哈,果然自己还是要多练练
    整体技术热情和能力不错,但是在技术成果/沉淀 上还是有欠缺,面试结果是未通过。

更多模拟面试

全部评论

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

推荐话题

相关热帖

近期热帖

近期精华帖

热门推荐