瓶子君

Results 96 comments of 瓶子君

这是今天在 [Advanced-Frontend组织](https://github.com/Advanced-Frontend/Daily-Interview-Question) 看到一个比较有意思的题目。 主要是讲**JS的映射与解析** 早在 2013年, 加里·伯恩哈德就在微博上发布了以下代码段: ```js ['10','10','10','10','10'].map(parseInt); // [10, NaN, 2, 3, 4] ``` ### parseInt `parseInt()` 函数解析一个字符串参数,并返回一个指定基数的整数 (数学系统的基础)。 ```js const intValue = parseInt(string[, radix]); ``` `string` 要被解析的值。如果参数不是一个字符串,则将其转换为字符串(使用...

看一道面试题: > 已知如下数组:var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; > > 编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组 答案:...

在 HTTP/1 中,每次请求都会建立一次HTTP连接,也就是我们常说的3次握手4次挥手,这个过程在一次请求过程中占用了相当长的时间,即使开启了 Keep-Alive ,解决了多次连接的问题,但是依然有两个效率上的问题: - 第一个:串行的文件传输。当请求a文件时,b文件只能等待,等待a连接到服务器、服务器处理文件、服务器返回文件,这三个步骤。我们假设这三步用时都是1秒,那么a文件用时为3秒,b文件传输完成用时为6秒,依此类推。(注:此项计算有一个前提条件,就是浏览器和服务器是单通道传输) - 第二个:连接数过多。我们假设Apache设置了最大并发数为300,因为浏览器限制,浏览器发起的最大请求数为6,也就是服务器能承载的最高并发为50,当第51个人访问时,就需要等待前面某个请求处理完成。 HTTP/2的多路复用就是为了解决上述的两个性能问题。 在 HTTP/2 中,有两个非常重要的概念,分别是帧(frame)和流(stream)。 帧代表着最小的数据单位,每个帧会标识出该帧属于哪个流,流也就是多个帧组成的数据流。 多路复用,就是在一个 TCP 连接中可以存在多条流。换句话说,也就是可以发送多个请求,对端可以通过帧中的标识知道属于哪个请求。通过这个技术,可以避免 HTTP 旧版本中的队头阻塞问题,极大的提高传输性能。

`indexOf` 有两种: > String.prototype.indexOf() 返回从 `fromIndex` 处开始搜索第一次出现的指定值的索引,如果未找到,返回 `-1` ```js str.indexOf(searchValue [, fromIndex]) // fromIndex 默认值为 0 ``` > Array.prototype.indexOf() 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回 `-1` ```js arr.indexOf(searchElement[, fromIndex]) ``` ### 解答 #### String.prototype.indexOf() **解题思路:正则,字符串匹配**...

```js function normalize(s) { let arr = s.match(/\w+/g) let result while(arr.length) { let cur = arr.pop() let temp = {value: cur} if(result) { temp.children = result } result = temp...

extends:子类会继承父类的所有属性和方法 implements:使用implements关键字的类将需要实现需要实现的类的所有属性和方法

### 浏览器的渲染 浏览器的渲染流程如下: ![图:WebKit 主流程](http://resource.muyiy.cn/image/20210707062036.png) 图:WebKit 主流程 ![图:Mozilla 的 Gecko 呈现引擎主流程(3.6)](http://resource.muyiy.cn/image/20210707062023.jpg) 图:Mozilla 的 Gecko 呈现引擎主流程(3.6) 结合上图,一个完整的渲染流程如下: - 渲染进程解析 HTML 内容转换为能够读懂的 DOM 树结构,解析 CSS 为 CSSDOM - 把 DOM 和 CSSOM...

```js function dedup(list = []) { let m = new Map() Array.from(new Set(list)).map(item => { if (typeof(item) === 'object') { if (!m.has(JSON.stringify(item))) { m.set(JSON.stringify(item), item) } } else { m.set(item,...

## TypeScript 中 const 与 readonly 的区别? TypeScript 中不可变量的实现方法有两种: - 使用 ES6 的 const 关键字声明的值类型 - 被 readonly 修饰的属性 ### TypeScript 中 readonly TypeScript 中的只读修饰符,可以声明更加严谨的可读属性 通常在 `interface` 、 `Class` 、 ...

#### 解法:动态规划 **第 1 步:定义状态** `dp[i][j]` 表示子串 `s[i..j]` 是否为回文子串,这里子串 `s[i..j]` 定义为左闭右闭区间,可以取到 `s[i]` 和 `s[j]` 。 **第 2 步:思考状态转移方程** 对于一个子串而言,如果它是回文串,那么在它的首尾增加一个相同字符,它仍然是个回文串 ```js dp[i][j] = (s[i] === s[j]) && dp[i+1][j-1] ``` **第 3...