FrankKai

Results 350 comments of FrankKai

### Object.is与==和===有什么不同? React中的浅比较是基于Object.is实现的。 那么Object与==、===有什么不同呢? #### Object.is与== ==在比较两边的值之前,会先进行强制转换。而Oject.is不会 #### Object.is与=== ===会将-0和+0当做相等的,将Number.NaN和NaN当做不相等的。而Oject会将其看做相当的

### 如何实现一个浅比较? ```js function shallowEqual(objA, objB) { if (Object.is(objA, objB)) { return true; } if (objA === null || typeof objA !== 'object' || objB === null || typeof objB...

### proxy方式的属性监听(watch) ```js // proxy watch let onWatch = (obj, setBind, getLogger) => { let handler = { get(target, property, receiver) { getLogger(target, property) return Reflect.get(target, property, receiver); }, set(target,...

### encodeURI vs encodeURIComponent ```js var set1 = ";,/?:@&=+$#"; // Reserved Characters var set2 = "-_.!~*'()"; // Unreserved Marks var set3 = "ABC abc 123"; // Alphanumeric Characters + Space...

### Function.prototye.bind()怎么用 bind函数运行后,会生成一个新的函数。新函数内部的this,会指向为bind的第一个参数。 ```js const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // The function gets invoked at the global...

### 可选链的执行过程 #### 如果没有可选链语法,下面的代码逻辑是怎样的? ```js let nestedProp = obj.first?.second; ``` => ```js let temp = obj.first; let nestedProp = ((temp === null || temp === undefined) ? undefined : temp.second);...

### e.target和e.currentTarget - e.target 事件发生的元素 - e.currentTarget 事件监听的元素 ```html parent child // target是事件发生对象 // currentTarget是事件监听对象 const parent = document.getElementById("parent"); // 为parent绑定事件 // 点击child target是child, currentTarget是parent(这是因为事件冒泡) // 点击parent target和currentTarget都是parent parent.onclick =...

### 巧用Promise.race加载2组CDN资源,使用先完成加载的CDN ```js let p 1= new Promise((resolve)=>{ setTimeout(()=>{console.log(1);resolve()}, 1000) }) let p2 = new Promise((resolve)=>{ setTimeout(()=>{console.log(2);resolve()}, 2000) }) let p3 = new Promise((resolve)=>{ setTimeout(()=>{console.log(3);resolve()}, 3000) }) let p4 =...

### 什么是对撞指针? #### 初识 - 对撞指针是双指针算法之一。 - 对撞指针从两端向中间迭代数组。一个指针从始端开始,另一个从末端开始。 - 对撞指针的终止条件是两个指针相遇。 - 对撞指针常用于排序数组。 #### 算法图 ![image](https://user-images.githubusercontent.com/19262750/79089358-74f54500-7d78-11ea-8ec7-9971b497e111.png) #### 对撞过程图 167.两数之II-输入有序数组(easy)的对撞过程图。 蓝色指针:头指针 红色指针:尾指针 终止条件:头尾指针对撞

### JavaScript中的Array与对撞指针 #### 在js中,如何定义对撞指针? ##### 命名 头尾指针的命名可以为: - `i, j` - `head, tail` - `start, end` ##### 初始值 - 头指针:0 - 尾指针:数组长度减一 ```js let arr = [1, 7, 5, 2];...