JavaScript
文章平均质量分 53
js 文章
爱吃鸡蛋的程序员
努力学习 muscle up
展开
-
JS: map 和 weakMap
Set成员唯一、无序且不重复[value, value],键值与键名是一致的(或者说只有键值,没有键名)可以遍历,方法有:add、delete、hasWeakSet成员都是对象成员都是弱引用,可以被垃圾回收机制回收,可以用来保存DOM节点,不容易造成内存泄漏不能遍历,方法有add、delete、hasMap本质上是键值对的集合,类似集合可以遍历,方法很多可以跟各种数据格式转换WeakMap只接受对象作为键名(null除外),不接受其他类型的值作为键名键名是弱引.原创 2021-03-01 00:43:08 · 230 阅读 · 0 评论 -
js: prototype 与 __prop__解析
prototype 是对该函数以及其实例函数的公用说明, 可以理解为, 在实例化的时候, js 会一并把该函数的的 prototype 一并付给实例化的对象__proto__, 代表的是关于其父级的联系function Person(){}let person = new Person();person.__proto___=== Person.prototype // true函数的 prototype !== __proto__function Person(){}1. Pe.原创 2021-02-03 00:36:57 · 384 阅读 · 0 评论 -
JS专题 : this
js 专题之 : this原创 2021-01-14 17:34:23 · 99 阅读 · 1 评论 -
js的hosting (变量提升 和 函数声明提升)比较
我们知道在js中, js解析器会在 执行代码之前, 把 变量申明和函数申明 都预读一遍然后, 有一个疑问来了, 到底是 变量提升 权重高 还是 函数申明提升权重高?我们可以做个试验:example1: var a=20;function a (){ console.log(10);}console.log(a); //输出的值是20example2: f...原创 2019-10-17 14:08:17 · 166 阅读 · 0 评论 -
关于对象数组的拷贝
发现了一个坑, 自己平时没有太多去想,今天做code review的时候 发现了: 先po上代码let myArray =[{onset: 1},{onset1: 2},{onset2:3}];let myArray2 = [];for(let i=0; i<myArray.length; i++){ myArray2.push(myArray[i]);}for(let i...原创 2019-10-12 17:57:42 · 283 阅读 · 0 评论 -
如何在Array中 查找到同类值, 并合并到 object的 key value中
最近在做js开发,发现经常需要在一列myArray =[{time:1, value:10}, {time:2, value:20}, {time:1, value: 15}, {time:2, value: 10}];把这样的数组 给 最终 转换成 :myMap= {1: [ {time:1, value:10},{time:1, value: 15} ],2:[{...原创 2019-10-09 11:50:43 · 167 阅读 · 0 评论 -
利用Map 把 string类型的 array 转换为Number 类型的Array
最经常想到的是 用for循环, 然后把每一项 从 string转成NumberstringArray=["1", "2", "3"];numberArray=[]for( let i=0; i<stringArray.length; i++){ numberArray[i]=Number(stringArray[i]);}但是像这种典型的 Array里面每一个item...原创 2019-10-09 14:39:40 · 421 阅读 · 0 评论 -
++i和 i++的坑
最近在重构别人写的代码, 发现了一个bug 但是逻辑怎么看都没问题. 但是结果就是出来不对, 后来debug 逐步排查 ,发现了在 i++ 的时候除了问题i=5;let x = i++; //x =5. i=6++i 先给i自加1,再计算表达式的值。i++先计算表达式的值,再给i自加1。...原创 2019-10-09 14:59:39 · 161 阅读 · 0 评论