【面试篇】2017腾讯IMWeb前端秋招特训营思考题

7月12日

思考题

  • 题一:站点Logo是否应该出现在<h1>标签中?

  • 题二:是否应该支持IE6?

面试题

  • 什么是盒子模型?
    答:margin,border,padding,content;标准盒和怪异盒

  • 简述src和href的区别?
    答:src从外部引入资源,href将页面导向外部资源

  • 简述同步和异步的区别?
    答:同步:当前进程执行完后,下一个进程才能执行;异步:当前进程的执行不影响下一个进程的执行

  • 怎样添加,移除,移动,复制,创建和查找节点?
    答:添加节点appendChild,移除节点removeChild,复制节点clone,创建createElement,查找节点parentNode,childNodes

编程题

  • 找出元素item在给定数组arr中的位置

clipboard.png

编程思路:二分查找

function indexOf(arr, item) {
    var arr = arr.sort(function(a,b){
        return a-b;
    });
    function binSearch(arr,item){
        var upperBound = arr.length-1;
        var lowerBound = 0;
        while(lowerBound<=upperBound){
            var mid = Math.floor((upperBound+lowerBound)/2);
            if(arr[mid]<item){
                lowerBound=mid+1;
            }else if(arr[mid]>item){
                upperBound=mid-1;
            }else{
                return mid;
            }
        }
        return -1;
    };
    return binSearch(arr,item);
};
var line = readline();
var lastIndex = line.lastIndexOf(",");
var arr = line.slice(0,lastIndex).match(/\d/g);
var num = parseInt(line.slice(lastIndex+1));
indexOf(arr,num);
  • 计算给定数组arr中所有元素的总和

clipboard.png

编程思路:迭代器简化代码量

function sum(arr) {
    function add(runningTotal,currentValue){
        return runningTotal+currentValue;
    }
    return arr.reduce(add);
}

本文转载于:猿2048⇨https://www.mk2048.com/blog/blog.php?id=ha1k2bj2h0j

posted @ 2020-01-21 12:00  10年码农  阅读(173)  评论(0编辑  收藏  举报