面试2

求出字符串中出现的字母的个数

// 只要求字母的个数
function counter(str) {
  if (!str) {
    return {}
  }
  var obj = {};
  var newStr = str.replace(/\s|\d/g, ''); // 将空格和数字去除
  var arr = newStr.split('').sort(); // 排个序
  var count = 1;
  for (var i = 0; i < arr.length; i++) {
       // 判断是否存在该key
    if (obj.hasOwnProperty(arr[i])) {
     // 注意这里不能使用 count++, 因为counter++在下一次循环之后才真正加1
      obj[arr[i]] = ++count;
    } else {
      obj[arr[i]] = 1;
      count = 1;
    }
  }
  
  return obj;
}
counter('aaaddaccuuiiiuiu ikaa')
// {a: 6, c: 2, d: 2, i: 5, k: 1, u: 4}

使用正则去除首尾的空格

这个一开始想复杂了,开始是准备使用 ?= 这种方式做的,后来发现没有必要

function trim(str) {
  return str.replace(/^\s+|\s+$/g, '')
}

浏览器渲染的过程解释

参考文章:

输入网址到页面显示之间发生了什么

文章参考:

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

推荐阅读更多精彩内容

  • Doctype作用?标准模式与兼容模式各有什么区别? <!DOCTYPE>声明位于HTML文档中的第一行,处于 ...
    无目的阅读 349评论 0 0
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,020评论 3 119
  • 11.为什么要初始化CSS样式。 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化...
    熊孩子CEO阅读 402评论 0 4
  • 老王昨天第三次栓塞,没有任何征兆,早上出门还好好的,十一点进家突然发现右嘴角上扬,越看越歪斜。本来想包饺子吃赶紧放...
    山川大地日月星辰阅读 233评论 0 1
  • 今年参加了高考监考。又回到了母校,我曾经在这里上高中,后来教高中,二十一年。现在新建的学校很漂亮,设施先进,操场...
    微雨竹窗阅读 283评论 0 0