![](https://img-blog.csdnimg.cn/20190927151043371.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
前端原理
前端的一些基础知识点以及原理分析。
道甚夷
给一个币,实现你的愿望
展开
-
js解析成语法树以及还原
也可以应用在语言混淆以及加密上。原创 2024-06-07 17:23:38 · 176 阅读 · 0 评论 -
node事件机制详解
node事件机制详解原创 2023-06-30 16:52:42 · 616 阅读 · 0 评论 -
nodeJS内置模块-进程及相关
child-process.js 子进程。fork.js文件,主进程。原创 2023-06-29 11:00:44 · 201 阅读 · 0 评论 -
js-排序-对象key自动排序问题
【代码】js-排序-对象key自动排序问题。原创 2022-10-18 09:02:28 · 1486 阅读 · 0 评论 -
js-设计并实现 Promise.race()
返回一个 promise,一旦迭代器中的某个 promise 解决或拒绝,返回的 promise 就会解决或拒绝。设计并实现 Promise.race()原创 2022-09-07 15:41:25 · 190 阅读 · 0 评论 -
js-es6-class转es5源码解析
设置属性的可枚举性(默认为false)、可配置性为true,有value则设置可写属性为true,最后设置该属性及属性描述。设置类的属性及静态属性,属性放在构造器的原型函数上,静态属性放在构造器上。理解:es6 class 转为 es5 的源码及如何实现继承。2. _createClass 新建一个类对象。新建文件src/index.js。目的:查看 class 的源码。新建目录src,dist。检查类是否被当作函数使用。新建.babelrc。原创 2022-09-06 14:30:30 · 658 阅读 · 0 评论 -
js-设计模式-再看非柯里化-泛化应用
非柯里化-this泛化应用-即借用其他对象的方法来让自己也能使用该方法。对象借用Array的push方法来实现对象的push。原创 2022-09-01 17:24:35 · 194 阅读 · 0 评论 -
js-设计模式-柯里化-严格模式写法
柯里化函数主要用来:当有参数时,存储每次设置的值;当无参数时,调用操作函数来计算总金额;闭包存储一个临时对象,最后调用函数处理该临时对象。柯里化-应用-金额总数计算。原创 2022-09-01 17:20:50 · 150 阅读 · 0 评论 -
js-迭代器及for-of
【代码】js-迭代器及for-of。原创 2022-08-28 21:38:56 · 93 阅读 · 0 评论 -
js-generator-并发器
生成器并发原创 2022-08-28 00:44:01 · 107 阅读 · 0 评论 -
js-模板字面量及应用
模板字面量及String.raw的应用。原创 2022-08-27 14:40:49 · 79 阅读 · 0 评论 -
js-promise.resolve运用(1)
设置一个默认的promise.resolve,如果有点击事件,则加入一个promise.形成promise链.中间可以随时加入,最后依次执行。场景:表单提交时,需要判断是否发送消息,如果需要,则等待发送完成后再提交表单。优化,promise.resolve()的运用。...原创 2022-08-19 19:01:42 · 459 阅读 · 0 评论 -
js-gerenator-async异步迭代器错误处理及+promise
【代码】js-gerenator-async异步迭代器错误处理及+promise。原创 2022-08-26 11:41:18 · 50 阅读 · 0 评论 -
js-数组对象去重问题三归一
方法1:适用JSON.stringify+includes直接查找。三问:两个ab数组对象,把a数组对象中某一项添加到b数组对象中。二问:push不重复item(对象)项到数组会怎么处理。模式,可以直接存对象,而且是不重复的,即具有去重作用。答:判断对象是否存在数组中,不存在再加入。一问:对象数组去重你会怎么处理。原创 2022-08-23 18:37:47 · 224 阅读 · 0 评论 -
js-promise函数
【代码】js-promise函数。原创 2022-08-25 11:38:03 · 104 阅读 · 0 评论 -
js-对象数组新增对象元素-去重
场景:a数组合并到b数组,两数组内部都是对象元素,合并后不能存在相同对象元素。方法4:先push,后续利用map过滤处理。方法2:查找处理,利用JSON字符串。方法3:先push,后续程序过滤处理。方法1:数据源处理,转为map。原创 2022-08-24 16:25:37 · 784 阅读 · 0 评论 -
js-promise
分离回调:所有的promise最后都加上catch,如果没有传入处理函数,错误会被吞掉.这样导致不会报错,即出错很难,但可能是个坑.这是错误处理思想从结果最坏到结果最好情况的转变.获取异步错误, try-catch只能获取同步错误。then方法的两个函数,success,fail。promise.catch是then的第二个函数。以往的错误处理,比如nodeJs中的回调设计。具有then方法的对象即是promise。,缺点:多级回调会形成回调地狱.什么是promise?原创 2022-08-25 17:38:51 · 62 阅读 · 0 评论 -
js-promise-try实现
【代码】js-promise-try实现。原创 2022-08-24 18:12:04 · 166 阅读 · 0 评论 -
js-flat的5种实现及设置deep层
【数据源】仅限:数组中嵌套数组的情况,不包含对象。原创 2022-08-24 16:15:39 · 180 阅读 · 0 评论 -
js-promise设置超时
使用promise.race来设置竞态。原创 2022-08-25 16:01:33 · 773 阅读 · 0 评论 -
js-Object.create 行为委托设计模式
Object.create 委托设计模式 继承原创 2022-07-28 11:34:39 · 117 阅读 · 0 评论 -
js-promise-resolve应用(2)
在这个超时的例子中,使用promise.resolve来观察和记录正常的promise的结果,但不破坏原有的promise。原创 2022-08-25 16:21:51 · 155 阅读 · 0 评论 -
js-promise-resolve应用(3)
使用promise.resolve()的then捕获异步结果。原创 2022-08-25 16:41:06 · 97 阅读 · 0 评论 -
js-generator-状态机及控制状态机
使用generator自身状态。使用一个变量维护状态。原创 2022-08-23 18:39:46 · 319 阅读 · 0 评论 -
js-提取对象属性字符串拼接成逗号字符串
数组元素为对象时,提取对象属性字符串拼接成逗号字符串。原创 2022-08-12 09:43:54 · 1349 阅读 · 0 评论 -
js-generator-msg内外消息传递
【代码】js-generator-msg内外消息传递。原创 2022-08-26 11:38:25 · 55 阅读 · 0 评论 -
js-generator实现promiseAll
【代码】js-generator实现promiseAll。原创 2022-08-24 17:17:29 · 108 阅读 · 0 评论 -
读书笔记-你不知道的js(中卷)
你不知道的js读书笔记原创 2022-08-15 15:06:27 · 291 阅读 · 0 评论 -
js-对象属性是否全部为空
对象属性是否全部为空原创 2022-07-14 16:38:51 · 1003 阅读 · 0 评论 -
es6解构赋值设置默认值优化多重判断问题
一般我们读取api返回的数据是这样写的:// 假设返回的数据结构let result = { data:{ bgInfo: { invoices: [], voucherInfoList: [ { fileId: '1234567', fileName: 'temp', fileType: 'png', }原创 2022-04-01 15:13:59 · 1905 阅读 · 0 评论 -
js-日期前置补0或区号补0
// 生成毫秒的时间,补0new Date().getMilliseconds().toString().padStart(3, '0')原创 2022-03-10 10:42:12 · 399 阅读 · 0 评论 -
基础-++运算符
(x + y++) * nlet x = 1let y = 2let n = 3let sum = (x + y++) * n/*sum = 9y = 3*/let s = x * y++/*s = 3s = (x) * (y++) 优先级顺序:+ > ++ > **/原创 2021-12-25 02:23:12 · 269 阅读 · 0 评论 -
js-undefined和void
viod 0分析原创 2021-12-09 16:47:42 · 568 阅读 · 0 评论 -
js-parseInt参数问题
参数2: 进制,取值范围2-36,否则为NaN, 为0则默认为10进制。使用柯里化解决该问题。原创 2021-11-29 13:36:12 · 358 阅读 · 0 评论 -
js不同类型计算时,类型转换的规则表
类型x类型y结果nullundefinedtrueundefinednulltrue数字字符串x==toNumber(y)字符串数字toNumber(x) == y布尔值任何类型toNumber(x) == y任何类型布尔值x == toNumber(y)字符串或数字对象x == toPrimitive(y)对象字符串或数字toPrimitive(x) == x其他为false...原创 2021-11-26 11:21:53 · 363 阅读 · 0 评论 -
js存储原理
引子let a = 1let b = 0let c = -1// 转为二进制a.toString(2) // 1 b.toString(2) // 0c.toString(2) // -10.1 + 0.2 // 0.30000000000000004let x = 0.1let y = 0.2let s = 0.3x.toString(2) // 0.000110011001100110011001100110011001100110011001100110原创 2021-11-26 11:20:20 · 470 阅读 · 0 评论 -
bower基本使用
初始化npmnpm init -y全局安装bowernpm install bower -g查看版本bower -v项目下初始化bowerbower init -y查找包bower search xxx自定义安装目录(默认生成目录:/bower_components/xxx)手动新建.bowerrc 文件{ 'directory':'src/lib'}更新...原创 2018-10-21 17:47:01 · 216 阅读 · 0 评论 -
es6加深理解
1. 解构默认值需要注意的是undefined和null的区别。let [a,b="张三"]=['李四',undefined];console.log(a+b); //控制台显示“技术胖张三”undefined相当于什么都没有,b是默认值。let [a,b="张三"]=['王五',null];console.log(a+b); //控制台显示“王五null”null相当于有值,但值为null。所以b并没有取默认值,而是解构成了null。2. 圆括号的使用如果在解构之前就定义了变量,这时原创 2020-06-04 16:26:57 · 272 阅读 · 0 评论 -
es6 proxy 个人理解和应用场景示例
一,基础1. 概念对外界的访问进行过滤和改写2. 基本用法// 用法1var object = { proxy: new Proxy(target, handler) };// 用法2var proxy = new Proxy({}, { get: function(target, propKey) { return 35; }});let obj = Object.create(proxy);obj.time // 353. 拦截操作get(target,原创 2020-06-12 15:44:35 · 794 阅读 · 0 评论 -
es6 generator 个人理解 细粒度操作(1)
generator 细粒度操作各种对象状态机,封装多个状态,轮着输出,可以暂停,可以终止。可以对函数行为精确操作。可以暂停的函数,分段执行分段输出可以遍历有记忆功能,下次遍历可以从上次继续下去yield 只适合 genenrator函数,即带*的函数yield作为输出,在函数内不能作为数据使用。比如1+yield 2yield表达式本身没有返回值,或者说总是返回undefinedfor…of循环不会执行return语句表达式var gfn =原创 2020-06-10 15:27:14 · 160 阅读 · 0 评论