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

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

你可能感兴趣的:(js | 关于原生js的三道基础面试题)