美文网首页
js | 关于原生js的三道基础面试题

js | 关于原生js的三道基础面试题

作者: 一把伞骨 | 来源:发表于2019-10-08 14:47 被阅读0次

    原生js是前端的基础,如过javascript掌握不好,那后面的三座大山(angularJS,reactJS,vueJS)就要一直学习使用方法也不得其要领,无法对源码进行深入的了解.偶然得到三道面试题,是对应阿里p6的技术水平的,不妨自测一下,看自己是什么水平?

    1.在淘宝首页,如何在控制台写一段代码,统计出淘宝首页一共用了多少种html标签?

     new Set([...document.querySelectorAll('*')].map(v=>v.tagName)).size;
    

    2.再次统计出使用最多的三种html标签分别是哪三种?

    Object.entries([...document.querySelectorAll('*')].map(v=>v.tagName).reduce((res,a) =>{
        res[a] = (res[a] || 0)+1
        return res
    },{})).sort((a,b) => b[1] - a[1]).slice(0,3)
    

    3.利用递归的思想再次实现刚才的两个问题

    var map = {};
    function fds(node){
      if(node.nodeType === 1){
        var tagName = node.nodeName;
        map[tagName] = map[tagName]? map[tagName] + 1: 1;  
      }
      var children = node.childNodes;
      for(var i = 0;i<children.length;i++){
        fds(children[i])
      }
    }
    fds(document.body);
    console.log(map)
    

    答案不标准,还望有更好的想法可以联系本人,本人必会虚心求教!!!

    相关文章

      网友评论

          本文标题:js | 关于原生js的三道基础面试题

          本文链接:https://www.haomeiwen.com/subject/jmdbpctx.html