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

原生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)

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容