随笔分类 -  js

摘要:WeakMap结构与Map结构类似,用于生成键值对的集合。 // WeakMap 可以使用 set 方法添加成员 const wm1 = new WeakMap(); const key = {foo: 1}; wm1.set(key, 2); wm1.get(key) // 2 // WeakMa 阅读全文
posted @ 2020-03-25 10:07 banzhuxiang 阅读(203) 评论(0) 推荐(0)
摘要:Map 转为数组 const myMap = new Map() .set(true, 7) .set({foo: 3}, ['abc']); [...myMap] // 使用扩展运算符(...) // [ [ true, 7 ], [ { foo: 3 }, [ 'abc' ] ] ] 数组 转为 阅读全文
posted @ 2020-03-25 10:01 banzhuxiang 阅读(179) 评论(0) 推荐(0)
摘要:Map 结构转为数组结构,比较快速的方法是使用扩展运算符(...) const map = new Map([ [1, 'one'], [2, 'two'], [3, 'three'], ]); [...map.keys()] // [1, 2, 3] [...map.values()] // [' 阅读全文
posted @ 2020-03-25 09:54 banzhuxiang 阅读(165) 评论(0) 推荐(0)
摘要:Map.prototype.keys() const map = new Map([ ['F', 'no'], ['T', 'yes'], ]); for (let key of map.keys()) { // 返回键名的遍历器 console.log(key); } // "F" // "T" 阅读全文
posted @ 2020-03-25 09:48 banzhuxiang 阅读(125) 评论(0) 推荐(0)
摘要:size 属性 const map = new Map(); map.set('foo', true); map.set('bar', false); map.size // 2 size属性返回 Map 结构的成员总数 Map.prototype.set(key, value) var myMap 阅读全文
posted @ 2020-03-25 09:40 banzhuxiang 阅读(331) 评论(0) 推荐(0)
摘要:Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Objec 阅读全文
posted @ 2020-03-25 09:30 banzhuxiang 阅读(183) 评论(0) 推荐(0)
摘要:和 Set 对象的区别有两点: 与Set相比,WeakSet 只能是对象的集合,而不能是任何类型的任意值。 WeakSet持弱引用:集合中对象的引用为弱引用。 如果没有其他的对WeakSet中对象的引用,那么这些对象会被当成垃圾回收掉。 这也意味着WeakSet中没有存储当前对象的列表。 正因为这样 阅读全文
posted @ 2020-03-24 21:00 banzhuxiang 阅读(148) 评论(0) 推荐(0)
摘要:类似于数组,但是成员的值都是唯一的,没有重复的值 const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 Set函数可以接受一 阅读全文
posted @ 2020-03-24 20:57 banzhuxiang 阅读(126) 评论(0) 推荐(0)
摘要:instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 function Car(make, model, year) { this.make = make; this.model = model; this.year = year; } cons 阅读全文
posted @ 2020-03-24 20:50 banzhuxiang 阅读(124) 评论(0) 推荐(0)
摘要:前六种是:undefined、null、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。 symbol生成 let s = Symbol(); typeof s // "symbol" Symbol函数可以接受一个字符串作为参数 let s1 = Sym 阅读全文
posted @ 2020-03-24 20:39 banzhuxiang 阅读(180) 评论(0) 推荐(0)
摘要:Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性)。 const obj = { foo: 'bar', baz: 42 }; console.log(O 阅读全文
posted @ 2020-03-24 20:03 banzhuxiang 阅读(174) 评论(0) 推荐(0)
摘要:将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 第一个参数是目标对象,后面的参数都是源对象。 合并对象 const o1 = { a: 1 }; const o2 = { b: 2 }; const o3 = { c: 3 }; const obj = Object.ass 阅读全文
posted @ 2020-03-24 19:51 banzhuxiang 阅读(153) 评论(0) 推荐(0)
摘要:比较两个值是否严格相等 相等运算符(==)会自动转换数据类型 严格相等运算符( )NaN不等于自身,以及+0等于-0 +0 -0 //true NaN NaN // false Object.is(+0, -0) // false Object.is(NaN, NaN) // true Object 阅读全文
posted @ 2020-03-24 19:44 banzhuxiang 阅读(114) 评论(0) 推荐(0)
摘要:新的 Null 判断运算符?? 它的行为类似|| ?? 只有运算符左侧的值为null或undefined时,才会返回右侧的值 || es5除了 null或undefined ,空字符串或false或0,都会返回右侧的值 const headerText = response.settings.hea 阅读全文
posted @ 2020-03-24 19:39 banzhuxiang 阅读(314) 评论(0) 推荐(0)
摘要:function doSomething(onContent, onError) { try { // ... do something with the data } catch (err) { if (onError) { // 校验onError是否真的存在 onError(err.messa 阅读全文
posted @ 2020-03-24 19:35 banzhuxiang 阅读(818) 评论(0) 推荐(0)
摘要:let z = { a: 3, b: 4 }; let n = { ...z }; n // { a: 3, b: 4 } // 等同于 {...Object(true)} {...true} // {} // 等同于 {...Object(undefined)} {...undefined} // 阅读全文
posted @ 2020-03-24 19:28 banzhuxiang 阅读(298) 评论(0) 推荐(0)
摘要:Object.getOwnPropertyDescriptor() 方法返回指定对象上一个自有属性对应的属性描述符。 let obj = { foo: 123 }; Object.getOwnPropertyDescriptor(obj, 'foo') // { // value: 123, // 阅读全文
posted @ 2020-03-24 19:06 banzhuxiang 阅读(445) 评论(0) 推荐(0)
摘要:定义对象的属性 // 方法一 obj.foo = true; // 方法二 obj['a' + 'bc'] = 123; var obj = { foo: true, abc: 123 }; ES6 允许字面量定义对象时,用方法二(表达式)作为对象的属性名,即把表达式放在方括号内。 let prop 阅读全文
posted @ 2020-03-24 19:00 banzhuxiang 阅读(253) 评论(0) 推荐(0)
摘要:function f(x, y) { return {x, y}; } // 等同于 function f(x, y) { return {x: x, y: y}; } f(1, 2) // Object {x: 1, y: 2} const o = { method() { return "Hel 阅读全文
posted @ 2020-03-24 18:57 banzhuxiang 阅读(153) 评论(0) 推荐(0)
摘要:数组的空位指,数组的某一个位置没有任何值。 比如,Array构造函数返回的数组都是空位。 空位不是undefined,一个位置的值等于undefined,依然是有值的。空位是没有任何值 Array(3) // [, , ,] Array.from(['a',,'b']) // [ "a", unde 阅读全文
posted @ 2020-03-24 18:47 banzhuxiang 阅读(299) 评论(0) 推荐(0)