
笔记
文章平均质量分 52
AS_TS
这个作者很懒,什么都没留下…
展开
-
学习笔记——Reflect 内置的对象
ReflectReflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。这些方法与proxy handlers的方法相同。Reflect不是一个函数对象,因此它是不可构造的。描述与大多数全局对象不同Reflect并非一个构造函数,所以不能通过new运算符对其进行调用,或者将Reflect对象作为一个函数来调用。Reflect的所有属性和方法都是静态的(就像Math对象)。Reflect 对象提供了以下静态方法,这些方法与proxy handler methods的命名相同.其原创 2021-03-22 10:44:50 · 353 阅读 · 0 评论 -
学习笔记——es2015 Proxy 对象
Proxy 对象响应代理器,可以监视到对象的读写过程const personProxy = new Proxy(person, {}第一个参数(person)是需要代理监听的对象,第二个参数为代理的处理对象,通过 get(){} 方法监听属性的读取访问, 通过 set(){} 方法监听对象中设置属性的过程get (target, property) {}第一个参数(target)是代理目标对象,第二个参数(property)是外部访问目标对象的属性名,返回值会成为外部访问该属性的返回原创 2021-03-20 23:38:06 · 427 阅读 · 2 评论 -
ECMAScript 2015(ES6)函数相关新特性(部分)
参数默认值// 默认参数一定是在形参列表的最后function foo (enable = true) { console.log('foo invoked - enable: ') console.log(enable)}foo(false)注意:默认参数一定是在形参列表的最后剩余参数// 原始方式使用 'arguments'// function foo () {// console.log(arguments)// }function foo (first,原创 2021-03-20 22:26:14 · 179 阅读 · 0 评论 -
模板字符串 以及部分字符串扩展方法(ECMAScript 2015(ES6))
模板字符串反引号包裹允许换行可以通过 ${} 插入表达式,表达式的执行结果将会输出到对应位置const msg = `hey, ${name} --- ${1 + 2} ---- ${Math.random()}`console.log(msg)带标签的模板字符串模板字符串的标签就是一个特殊的函数, 使用这个标签就是调用这个函数const name = 'tom'const gender = falsefunction myTagFunc (strings, name, gen原创 2021-03-20 21:42:43 · 226 阅读 · 0 评论 -
数组的解构、对象解构 (ECMAScript 2015(ES6))
es6 数组结构原始取值方式const arr = [100, 200, 300] const foo = arr[0] const bar = arr[1] const baz = arr[2] console.log(foo, bar, baz)结构方式const arr = [100, 200, 300]// 依次对应 const [foo, bar, baz] = arr console.log(foo, bar, baz)单独获取第三个,前两个位置用逗号’,'空出来原创 2021-03-20 20:56:42 · 470 阅读 · 0 评论 -
js 异步编程简介 笔记
采用单线程模式工作的原因JavaScript 采用单线程工作模式,因为JavaScript 最开始是用来在浏览器运行的脚本语言,是用来实现页面的动态交互,实现动态交互的核心是 DOM 操作,所以只能使用单线程模型,否侧会出现复杂的线程同步问题。单线程是指,js 执行环境中负责执行代码的线程只有一个这种模式最大的优势就是更安全,更简单。缺点也很明确,就是如果中间有一个特别耗时的任务,其他的任务就要等待很长的时间,出现假死的情况。JavaScript 将任务执行模式分成两种,同步模式(Synchron原创 2021-03-20 02:32:07 · 169 阅读 · 0 评论 -
模拟还原Promise部分功能 Promise核心逻辑实现
promise就是一个类在执行类的时候需要传递一个执行器进去,执行器会立即执行Promise中有三种状态,分别为成功-fulfilled 失败-rejected 等待-pendingpending -> fulfilledpending -> rejected一旦状态确定就不可更改resolve 和 reject函数是用来更改状态的resolve:fulfilledreject:rejectedthen方法内部做的事情就是判断状态如果状态是成功,调用成功回调函数如果状态..原创 2021-03-20 02:31:26 · 182 阅读 · 0 评论 -
函数式编程 笔记
什么是函数式编程函数式编程(Functional Programming, FP),FP 是编程范式之一,我们常听说的编程范式还有面向过程编程、面向对象编程。面向对象编程的思维方式:把现实世界中的事物抽象成程序世界中的类和对象,通过封装、继承和多态来演示事物事件的联系函数式编程的思维方式:把现实世界的事物和事物之间的联系抽象到程序世界(对运算过程进行抽象)程序的本质:根据输入通过某种运算获得相应的输出,程序开发过程中会涉及很多有输入和输出的函数x -> f(联系、映射) ->原创 2021-03-15 12:03:57 · 209 阅读 · 0 评论 -
学习笔记——函数组合
纯函数和柯里化很容易写出洋葱代码 h(g(f(x)))函数组合可以让我们把细粒度的函数重新组合生成一个新的函数函数组合函数组合 (compose):如果一个函数要经过多个函数处理才能得到最终值,这个时候可以把中间过程的函数合并成一个函数函数就像是数据的管道,函数组合就是把这些管道连接起来,让数据穿过多个管道形成最终结果函数组合默认是从右到左执行fn = compose(f1, f2, f3)b = fn(a)// 组合函数function compose (f, g) {原创 2021-03-15 10:51:20 · 278 阅读 · 0 评论 -
学习笔记——函数柯里化 (Haskell Brooks Curry)
柯里化 (Haskell Brooks Curry)使用柯里化解决硬编码的问题案例:function checkAge (age) { let min = 18 return age >= min}// 普通纯函数function checkAge (min, age) { return age >= min}checkAge(18, 24)checkAge(18, 20)checkAge(20, 30)// 柯里化function checkAge (mi原创 2021-03-14 22:38:49 · 389 阅读 · 0 评论 -
学习笔记——高阶函数
高阶函数什么是高阶函数高阶函数 (Higher-order function)可以把函数作为参数传递给另一个函数可以把函数作为另一个函数的返回结果函数作为参数模拟 forEach// forEach function forEach (array, fn) { for (let i = 0; i < array.length; i++) { fn(array[i]) } }let arr = [1, 3, 4, 7, 8]forEach(arr, fun原创 2021-03-12 23:06:47 · 827 阅读 · 0 评论 -
学习笔记——纯函数
纯函数纯函数概念纯函数:相同的输入永远会得到相同的输出,而且没有任何可观察的副作用纯函数就类似数学中的函数(用来描述输入和输出之间的关系),y = f(x)lodash 是一个纯函数的功能库,提供了对数组、数字、对象、字符串、函数等操作的一些方法数组的 slice 和 splice 分别是:纯函数和不纯的函数slice 返回数组中的指定部分,不会改变原数组splice 对数组进行操作返回该数组,会改变原数组数式编程不会保留计算中间的结果,所以变量是不可变的(无状态的原创 2021-03-13 01:20:06 · 217 阅读 · 0 评论 -
本地静态服务全局插件 serve插件 实现共享文件、文件夹
在工作中有局域网本地链接时,可以开启一个本地静态服务来实现共享文件、文件夹1. 将 serve 插件下载到全局$npm install -g serve2. 启动 serve 服务在需要共享的文件夹启动 serve 服务$serve原创 2021-03-10 11:52:38 · 749 阅读 · 0 评论 -
前端面试题100篇 链接
前端面试题100篇:https://www.html5iq.com/600fe22e9ab55c133a956711.html原创 2021-02-23 12:17:43 · 260 阅读 · 0 评论 -
js reduce()方法 配合 RegExp正则模糊匹配
这里提供一个小需求,需要将 examid 相同的项合并,并将此项中的 answer 属性值合起来且不重复具体数据如下:state = { arr: [ { examid: '1052', stb: '1', optionid: '4199', answer: 'A' }, { examid: '1265', stb: '1', optionid: '5051', answer: 'A' }, { examid: '97原创 2020-08-19 15:51:04 · 455 阅读 · 0 评论 -
JS数组中 reduce() 方法 数组对象去重
参考引用:数组里面对象去重的3种方法: https://blog.youkuaiyun.com/l284969634/article/details/91397332js数组去重的多种方法: https://blog.youkuaiyun.com/linglingzi001/article/details/107772411JS中reduce方法: https://blog.youkuaiyun.com/hope93/article/details/86528183Array.reduce()方法解析: https://blog.cs原创 2020-08-19 11:31:02 · 3025 阅读 · 0 评论