题目描述
数组中有一个数字出现的次数超过数组长度的一半, 请找出这个数字.
你可以假设数组是非空的, 并且给定的数组总是存在多数元素.
实例 1:
1 | 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] |
路漫漫其修远兮, 吾将上下而求索
所有 typeof 返回值为 object 的对象, 都会包含一个内部属性[[class]]. 一般来说把它当成一个内部的分类. 这个分类的值无法直接访问, 需要通过 Object.prototype.toString() 来查看
1 | Object.prototype.toString.call([]) |
JS 的任务分为同步和异步两种, 由于 js 执行引擎为单线程. 他们的处理方式有所不同. 同步任务直接放在主线程上依次执行. 异步任务则会存放在任务队列中, 如果有多个异步任务需执行则需要在任务队列中等待执行.
单线程的 js 只能同时做一件事情, 而对于有些异步事件(如 ajax 请求) 往往耗时较长. 主线程会在请求发出后去干别的事情. 浏览器先通过事件注册 ajax 的回调函数. 待响应返回后再添加到任务队列中等待处理. 而主线程也会在空闲时检查任务队列中是否有新添加的异步任务. 如果任务队列中存在待执行任务则拿出来执行. 整个把异步任务添加到异步队列中, 主线程空闲时检查异步任务队列非空则执行的过程就是事件环, 也是 js 实现异步逻辑的核心
article aside details figcaption figure footer header main mark nav section summary time and so on…
一般网站分为头部, 导航, 文章, 侧栏, 底部… 根据不同的部位可使用不同的标签进行书写: header nav article section footer aside
表示具体意义的区块也可以用特定意义的标签: a, abbr, address, blockquote, caption, code, datalist, del, details…
parseInt 和 Math.floor 都可以实现取整, 但是处理的方式存在差别
parseInt(string, radix) 将一个字符串 string 转换为 radix 进制的整数, radix 为介于 2 - 36 之间的整数, 如果 radix 传入的是 0, 会以默认值 10 处理.
其中
string: 是要被解析的字符串, 如果传入的值不是一个字符串则会将其转化成字符串(toString 方法), 字符串开头结尾的空白字符会被忽略
radix: 一个介于 2 - 36 的整数, 表示的是上述字符串的基数. 默认值是 10, 如果传入的 radix 小于 2 或者大于 36 则返回 NaN