- 博客(24)
- 收藏
- 关注
原创 使用useReducer和useContext代替redux
初始值这样格式的state,也就是你经过dispatch数据更新之后返回的新的初始值格式的值。useContext传值,useReducer设置值,这样就实现了代替redux。本篇文章的受众为使用过redux,并且决定替换掉redux的人群,小白劝退哦。,我们应该怎样去简化代码?1.用途:传值,从父到子,孙,孙孙.. 都可以拿到值。1.用途:通过dispatch,改变值。:就是dispatch里面的内容。2.与useState的关系。上面的reducer是这样的。),它接受两个参数,
2022-11-29 16:00:00
775
原创 执行环境和作用域
每个函数都有自己的执行环境。当执行流进入一个函数时,函数的环境就会被推入一个环境栈中。而在函数执行之后,栈将其环境弹出,把控制权返回给之前的执行环境。作用域链:当代码在一个环境中执行时,会创建变量对象的一个作用域链。用途:保证对执行环境有权访问的所有变量和函数的有序访问。在标识符解析的时候,始终按照从当前环境开始,一层一层想外层,直到找到标识符这个很有意思,,**只有函数作用域,**怎么理解这句话?
2022-10-09 10:20:29
507
原创 javaScript执行机制
一.先编译后执行1.编译阶段:对变量和函数进行变量提升操作2.执行阶段:将代码一行一行的执行javaScript在编译之后,会分为两个部分:执行上下文和可执行代码,执行上下文分为:全局执行上下文,函数执行上下文,eval 执行上下文;执行上下文包含变量环境,词法环境(当然还包括this等等),那么变量环境和词法环境都是用来存放什么的呢?变量环境用来存放:变量提升的部分(var)词法环境用来存放:块级作用域未提升的部分(let,const)二.调用栈我们知道了在执行之前会进
2022-02-21 21:19:52
652
原创 普通数组,Set,Map与entries()方法的关系
1.Set(): (1)Set只存储value值,没有key,{value:value} (2)Set对象允许你存储任何类型的唯一值,利用set存储唯一值的特点,我们可以进行去重 将Set对象转换为数组 一.共同点:1.都有entries()方法(给数组增加索引)(1)-普通数组:使用entries()要配合for循环才能拿到里面的索引和对应的值var ...
2022-02-21 21:19:30
1588
原创 单调栈算法
1.概念:单调栈是一种算法,它可以用一次扫描O(n)的时间求出序列中每个数向左和向右的第一个大于它的数,也可以用一次扫描O(n)时间求出序列中每个数向左和向右的第一个小于它的数2.
2021-10-28 16:29:50
199
转载 差分数组----
老规矩,先挂上参考文章https://blog.youkuaiyun.com/qq_31601743/article/details/1053528851.什么是差分数组?
2021-09-03 18:32:28
187
原创 去重的几种方法(部分)
去重方法千千万,下面展示三种1.最简单最普通const obj = {};const list = []; //放去重后的数组const arr = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 2 }, { id: 1 }];arr.forEach((item)=>{ if(obj[itemm.id]){ }else{ list.push(item); obj[item.id] = item.id; //obj[it
2021-08-24 17:22:05
1214
转载 [].slice.call(arguments, 1)的含义
[]就是一个普普通通的数组slice:slice(2)就是从下标2开始,截取数组2到结束call:var a = function (n) { console.log(this, n);}var b = {};a(1); // log出Window对象, 1a.call(b, 2); // log出b对象, 2所以[].slice.call(arguments, 1) 其含义相当于 arguments.slice(1),就是取出所有参数,并从下标为1开始,截取所有..
2021-08-23 14:11:15
255
原创 不是吧不是吧,map和filter的区别你还是不知道吗
1.map():方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值A)必须使用返回的新数组,B) 回调函数中有返回值。2.filter() :方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素[1,2,5,7,4,88,66,55].map((e)=>{ return e>6})(8)[false, false, false, true, false, true, true, true][1,2,5,7,4,88,6...
2021-08-20 15:03:19
1025
原创 JSON.stringify和JSON.parse
起因是,今天遇到了这样一个问题,Uncaught SyntaxError: Unexpected token o in JSON at position 1,眼熟吗?我不信你们没遇到过,于是我下定决心搞懂这个鬼东西!1.JSON.parse 把字符串转化为对象2.JSON.stringify 把对象转化为字符串*注:他俩的要求都很严格,JSON.parse(a),a必须为字符串,可以通过typeof判断一下,而且字符串必须双引号phoneNumberJson:[{"t":"MEMBE...
2021-08-19 15:40:35
193
原创 手写可编辑表格
最近有一个需求,要手写可编辑表格,接下来我将针对各功能,各页面,进行详细的描述* 查看态*编辑态*添加一行数据一.思路1.整体布局使用form包裹table,查看态就是一个正常的表格,编辑态:使用表格render,...
2021-08-16 15:53:06
748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2