
JavaScript
文章平均质量分 73
会持续更新
刮刮乐打工仔
开启全栈之旅!近期会更新可视化和服务端部分
掘金同名:https://juejin.cn/user/center/signin?avatar_menu
有问题可关注下面推广公众号:联系我
展开
-
深入浅出之Reduce(简易版redux)
reduce()实例方法按Array顺序对数组的每个元素执行用户提供的“reducer”回调函数,并传入前一个元素计算的返回值。对数组的所有元素运行 Reducer 的最终结果是一个值。 第一次运行回调时,没有“上一次计算的返回值”。如果提供了,可以使用初始值代替它。否则,索引 0 处的数组元素将用作初原创 2024-11-22 14:20:18 · 534 阅读 · 0 评论 -
深入浅出-JS Worker(多线程、ShardWorker、前端性能优化)
线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程是独立调度和分派的基本单位。同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈。原创 2024-11-22 14:10:40 · 1625 阅读 · 0 评论 -
深入浅出WebSocket(实践聊天室demo)
WebSocket 是一种在单个TCP连接上进行全双工通信的协议(计算机网络应用层的协议)在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接, 并进行双向数据传输。(维基百科)与HTTP协议有良好的兼容性,默认端口也是80和443,握手阶段采用HTTP协议建立在TCP协议之上,服务端的实现比较容易。原创 2024-11-06 15:46:09 · 1313 阅读 · 2 评论 -
前端实现下载word(多个word下载)-- docxtemplater
docxtemplater 是一个邮件合并工具,以编程方式使用,处理条件、循环,并可扩展以插入图像html或表格。docxtemplater 使用 Javascript 对象(或 JSON)作为数据输入,因此也可以轻松地从其他语言中使用(请参阅docker 版本它处理 docx 和 pptx 文件,并且通过附加模块,它可以处理 xlsx 模板它的工作方式与模板引擎相同,您给它一个模板+一些数据,它就会输出一个生成的文档。原创 2024-08-04 14:35:12 · 2816 阅读 · 6 评论 -
深入浅出iframe(+ iframe嵌套第三方页面跨域带cookie问题)
iframe标签规定一个内联框架。内联框架就是在一个页面中嵌入另一个页面。由于iframe可能在某些方面不符合标准网页设计的理念,已经被HTMLl5抛弃,目前的HTML5不再支持它了。原创 2023-08-30 14:44:38 · 12863 阅读 · 0 评论 -
JavaScript-生成二维码-qrcode
QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas绘制而成,不依赖任何库。原创 2022-03-26 18:18:31 · 2884 阅读 · 0 评论 -
彻底搞懂blob对象,实现文件下载,文件分片技术
要创建对象URL可以使用window.URL.createObjectURL()方法传入File或Blob对象。这个函数返回的值是一个指向内存中地址的字符串。因为这个值是URL,可以在DOM中直接使用。对象URL,是指存储在File或Blob中数据的URL。对象的URL的优点是不用把文件内容读取到JavaScript也可以使用文件。一种标准,用来表示文档/文件/字节流的格式和性质。slice => 可以用来进一步分割数据。size => 二进制文件的大小。text => 读取blob的值。原创 2022-10-18 21:35:02 · 2942 阅读 · 1 评论 -
Pubsub(订阅与发布)、EventBus(事件总线)
用于组件之间通信,可以实现任意组件的通信发布订阅模式。原创 2022-06-09 20:40:32 · 702 阅读 · 0 评论 -
JavaScript- Map、Set、WeakMap、WeakSet、简单模拟Map
WeakSet结构与Set类似,也是不重复的值集合。Set类似于数组,但是里面成员的值都是唯一的。Map是一种键值对的结构。原创 2023-03-04 15:04:10 · 1333 阅读 · 0 评论 -
JS-谈谈你所理解的闭包
闭包是指指那些引用了另一个函数作用域中变量的函数下面看一个例子(JS高级程设计上的一个例子)let value1 = object1 [ propertyName ] // 在这里引用了外部函数的变量 propertyName let value2 = object2 [ propertyName ] if(value1 < value2) {🍓上面做标注的地方,引用了外部函数的变量,在这个内部函数被返回后,这个引用变量依旧存在。原创 2022-10-25 21:27:26 · 641 阅读 · 2 评论 -
for in 、for of详解
只要一个数据实现Iterator接口,这个数据就会有一个叫做[Symbol.iterator]的属性。上面有个enumerable属性,就是它来控制属性是否可枚举。3、遍历字符串 => 字符所处的位置下标。属性描述符 => enumerable。同时也会枚举对象原型上的可枚举的属性名。2、可以用来遍历数组 => 数组下标。1、可以用来遍历对象 => 属性名。2、遍历字符串 => 字符每一项。1、遍历数组 => 数组每一项。3、遍历map => 每一项。4、遍历set => 每一项。原创 2022-09-25 20:54:56 · 1680 阅读 · 7 评论 -
JavaScript-节流与防抖
🌰我们平时玩游戏,我们可以把放技能理解成节流,点的再快,也是有冷却时间的🌰防抖则是类似于回城。原创 2022-09-01 16:15:07 · 480 阅读 · 1 评论 -
JavaScript-函数方法apply()、call()、bind()
文章目录apply()和call()介绍二者的区别二者强大之处bind()介绍apply()和call()介绍函数的两个方法:apply()和call()。这两个方法都会指定的this值来调用函数。即会设置调用函数时函数体内this对象的值。apply()方法接受两个两个参数:函数内this的值和一个参数数组。第二个可以是Array的实例,但也可以时arguments对象。function sum (num1,num2){ return num1+num2}function sum2(nu原创 2022-05-07 09:24:23 · 331 阅读 · 0 评论 -
JavaScript-带你手写深拷贝与浅拷贝
如有错误,欢迎指出原创 2022-04-01 16:09:26 · 1130 阅读 · 0 评论 -
JavaScript 数组、栈、队列、链表详解
数组栈基于JavaScript对象的Stack类class stackArray { //构造函数,初始化栈,采用对象的方式存储, //也可以采用数组的方式储存,就可以使用数组的API来改写 //push和pop都可以拿来用的 //注意:这里top初始化为0 constructor() { this._stackArray = {} this._top = -1 } isEmpty(){ if(this._原创 2021-10-21 16:25:13 · 494 阅读 · 1 评论 -
ES6模块和CommonJS详解及二者的区别
文章目录ES6模块(介绍、特点)介绍特点export 与 importimportCommonJSCommonJS模块规范模块exportrequiremoduleES6模块和CommonJS的区别ES6模块(介绍、特点)介绍ES6 引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。ES6 的模块化分为导出(export) @与导入(import)两个模块。特点ES6 的模块自动开启严格模式,不管你有没有在模块头部加上 use strict;。模块中可以导入和导出原创 2022-03-02 21:43:20 · 1539 阅读 · 0 评论 -
JS-事件类型(事件流、鼠标事件、键盘事件、事件委托)
鼠标事件键盘事件事件委托原创 2021-11-29 20:55:16 · 683 阅读 · 0 评论 -
JS-Canvas绘图
基本的画布功能不要在style里面设置width和height(可能会出现位置坐标不准的问题),直接设置canvas的属性就好<canvas id="drawing" width="300" height="150" style="border:1px solid #d3d3d3;"></canvas>要想在画布上绘制图形,首先要获取绘图上下文。使用getContext()方法可以获取绘图上下文的引用。对于平面图形,传入2d即可。 let drawing = docume原创 2021-11-04 17:55:56 · 3325 阅读 · 0 评论 -
JS-迭代器与生成器
迭代器模式可以把有些结构称为”可迭代对象“,因为他们实现了正式的Iterable接口。而且可以通过Iterator进行消费可迭代对象不仅限于数组,也可以是具有类似数组行为的其他数据结构可迭代协议实现Iterable接口的内置类型字符串、数组、映射、arguments对象、NodeList等DOM集合类型接收可迭代对象的原生语言for-of循环、数组解构、拓展操作符、Array.from()、创建集合、Promise.all()接受由期约组成的可迭代对象、Promise.race()、yield原创 2021-10-26 21:55:36 · 158 阅读 · 0 评论 -
JS-函数(二)( 函数属性和方法、私有变量)
私有变量严格来说是没有私有变量。但是可以认为定义在任何函数或块中的变量是私有的。特权方法是能够访问函数私有变量的function MyObject(){ let privateVariable = 10 function privateFunction(){ return true } //构造函数中实现 this.publicMethod = function(){ privateVariable++ return privat原创 2021-10-21 16:46:34 · 319 阅读 · 0 评论