
javascript
文章平均质量分 70
时清云
自强不息,厚德载物;日拱一卒,功不唐捐;海纳百川,有容乃大。这世上没有最强的人,只有想变强的人,做一个简单真实的自己。
展开
-
【前端手写代码】手写instanceof方法
instanceof运算符用于判断构造函数的prototype属性是否出现在对象的原型链中的任何位置。原创 2024-07-30 09:32:33 · 398 阅读 · 0 评论 -
【JavaScript】具有 iterable 接口的数据结构
在这个例子中,iterableObj 对象实现了 Symbol.iterator 方法,返回一个迭代器对象,通过 for…of 循环遍历时,依次输出迭代器返回的值。因此,具有 iterable 接口的数据结构是指支持迭代器协议,可以通过 for…of 循环或其他遍历方法遍历其成员的数据结构。在 JavaScript 中,具有 iterable 接口的数据结构包括。这些数据结构可以使用。循环进行遍历,也可以通过。迭代器对象需要包含一个。的方法,该方法返回一个。方法都会返回一个包含。原创 2024-07-06 16:14:21 · 379 阅读 · 0 评论 -
【JavaScript】浅拷贝与深拷贝
对象浅拷贝与深拷贝是我们经常在项目开发中遇到的问题。那怎么更好的实现呢?在JavaScript中,浅拷贝(shallow copy)和深拷贝(deep copy)是处理对象和数组拷贝时经常遇到的概念。它们主要区别在于的处理方式。原创 2024-07-06 12:47:20 · 1147 阅读 · 0 评论 -
DSBridge---跨端的原生与H5的通信框架
dsBridge是一个三端易用的现代跨平台 Javascript bridge, 通过它,你可以在Javascript和原生之间同步或异步的调用彼此的函数。最近在开发h5相关的需求,而且相关的h5页面会嵌入到app,h5页面有拍照、上传照片、上传文件等,拍照和上传照片可以使用UI组件提供的功能,但是上传文件这块需要用到原生的上传方法了。调研之后,我选择了dsBridge这个跨平台的Javascript bridge。我目前用的dsbridge版本是3.1.4首先先封装dsbridge相关的方法。原创 2024-04-15 15:10:31 · 2132 阅读 · 0 评论 -
如何使用 JavaScript 阻止屏幕进入睡眠状态
在移动设备上,屏幕常亮是一个常见的需求,尤其是在使用Web应用时。为了满足这一需求,开发者可以使用JavaScript中的来阻止屏幕进入睡眠状态。本文将详细介绍如何使用这一API,并讨论其在不同浏览器上的兼容性情况。转载 2024-03-29 15:41:59 · 790 阅读 · 0 评论 -
终于等到你!JS全新API支持关闭页面时安全发送网络请求
在日常的开发中,经常需要在用户关闭页面或导航至其他页面时,向服务器发送重要的数据请求。然而,确保这些数据请求能够安全、完整地发送到后端一直是一个挑战。近日,Chrome 浏览器正在积极引入一个革命性的 JavaScript API——。这个全新的 API 旨在彻底简化关闭页面时的数据发送过程,确保即使在页面关闭后或用户离开的情况下,请求也能在未来某个时刻被安全、可靠地发出。本文就来详细了解这个超实用的全新 API。转载 2024-03-29 15:13:01 · 451 阅读 · 0 评论 -
数组中的flat方法如何实现
数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维的数组。该方法返回一个新数组,对原数据没有影响。那flat怎么来实现呢?原创 2024-03-18 22:38:30 · 579 阅读 · 0 评论 -
使用pdf.js预览pdf遇到的问题总结
大于1M的pdf资源请求会很慢,所以在第二次请求、第三次请求等这些结果返回之后,第一次请求的结果还没有返回回来,(第二次请求、第三次请求等请求响应的结果是权限错误,因为iobs链接已经用了不止一次),因为第二次请求、第三次请求等请求失败,所以第一次请求的响应结果也是请求报错(因为服务器认为)但是苹果手机不是这样的,没有设置强缓存(苹果系统的安全机制是这样的,可以手动设置),所以分片加载会请求多次,第一次请求正常,后面的请求会出现请求报错的情况。好,现在已经修改完,大于1M的数据也可以被成功预览。原创 2024-03-03 17:09:57 · 3160 阅读 · 0 评论 -
【JavaScript 教程】第六章 数组06— slice() :复制数组元素
start和stop参数都是可选的。start 参数确定从零开始提取的索引。如果start是undefined, slice() 从 0 开始。stop参数,顾名思义,是一个从零开始的索引,在该索引处结束提取。slice() 方法提取到 stop-1。这意味着 slice() 方法不包含新数组中停止位置的元素。如果省略 stop 参数,slice() 方法将使用数组的长度作为 stop 参数。slice() 返回一个包含原始数组元素的新数组。转载 2024-02-19 17:37:50 · 165 阅读 · 1 评论 -
【JavaScript 教程】第六章 数组10— sort() : 对数组中的元素进行排序
sort() 方法允许您就地对数组的元素进行排序。除了返回排序后的数组,sort() 方法还改变了元素在原始数组中的位置。(会改变原有的数组)默认情况下, sort() 方法按升序对数组元素进行排序,最小值在前,最大值在后。sort() 方法将元素转换为字符串并比较字符串以确定顺序。在此示例中,sort() 方法将 10 放在 2 之前,因为在进行字符串比较时,字符串“10”在“2”之前。要解决此问题,您需要将比较函数传递给 sort() 方法。转载 2024-02-18 14:48:05 · 192 阅读 · 0 评论 -
【JavaScript 教程】第六章 数组11— filter() :过滤数组中的元素
使用数组时最常见的任务之一是创建一个包含原始数组元素子集的新数组。假设您有一个城市对象数组,其中每个对象包含两个属性:name和population。i++) {JavaScript Array 提供了 filter() 方法,允许您以更短、更简洁的方式完成此任务。});结果如下:在本例中,我们调用了城市数组对象的 filter() 方法,并将其传递给一个测试每个元素的函数。在函数内部,我们检查了数组中每个城市的人口是否大于 300 万。如果是这种情况,则函数返回true;转载 2024-02-06 17:36:14 · 278 阅读 · 0 评论 -
【JavaScript 教程】第六章 数组14—reduce() :将数组的元素减少为一个值
并且我们想要计算数组元素的总数。i++) {6首先,声明了一个包含三个数字 1、2 和 3 的数组。其次,声明 sum 变量并将其值设置为零。第三,在 for 循环中,将 numbers 数组的元素加到 sum 变量中。循环之后,sum变量的值为6。我们所做的是将一个数组归约为一个值。Array.prototype 允许我们使用reduce});这很简单,不是吗?让我们详细看一下reduce()方法。转载 2024-02-06 16:59:45 · 115 阅读 · 0 评论 -
关于数组中相邻元素的合并处理方法总结
当然这只是用简单的数据演示了一下,事实上数据中有好几个相邻的元素的name值都相同,所以这就需要我们封装一个健壮的函数来满足需求。这两天在开发需求的过程中,需要处理一个数组数据,对相邻元素的具有相同的点合并元素里面的数组。方法的理解,其次是需要对每次循环的数组元素做处理,然后再添加到result中。中的list合并到一块,并且删除了第二个。这个方法中的关键点,首先在于对。原创 2024-01-30 17:52:38 · 808 阅读 · 0 评论 -
【JavaScript 教程】第六章 数组17—flatMap() :对每个元素执行映射函数并将结果展平
flat() 方法创建一个新数组,其中连接了子数组的元素。map() 方法创建一个新数组,其元素是映射函数的结果。flatMap() 方法是 map() 方法后跟深度为 1 的 flat() 方法的组合。flatMap() 方法首先使用映射函数映射数组中的每个元素,然后将结果展平到一个新数组中。转载 2023-12-19 17:06:58 · 468 阅读 · 0 评论 -
JavaScript String.fromCharCode() 函数详解
String.fromCharCode()函数属于静态函数,而且只能够通过全局String对象进行调用,不能通过String对象的实例进行调用。String.fromCharCode()方法的返回值为String类型,其返回值为Unicode数值所表示的字符串。该函数属于String对象,所有主流浏览器均支持该函数。如果没有传入任何参数,则返回空字符串""。字符值中返回一个字符串。转载 2023-12-07 09:52:23 · 2713 阅读 · 0 评论 -
location中的各个属性
很容易忘记location中的各个属性,每次用到的时候还要查,于是总结下来,便于以后查看。比如下面这个url:http://172.16.20.218:8080/m/MGU20201126001-001/index.html#/write在chrome浏览器中Console中打印location,结果如下:所以总结如下http://172.16.20.218:8080/m/MGU20201126001-001/index.html?username=admin&password=123#原创 2021-01-15 14:45:07 · 897 阅读 · 1 评论 -
关于调试javascript的代码方式debugger
这段时间有些放松了,得把总结归纳的习惯重拾起来。 那就先从一个简单的开始吧。调试代码的方法之一,debugger。 其实之前我很少用,在项目中遇到了这样一种情况,就是在有两个页面的url地址后面和这两个页面的js文件名后面增加了随机数,而且这两个页面也不缓存,所以就导致这两个页面没法在浏览器上进行调试了,因为打过断点之后,在刷新页面的时候,url地址和js文件名都变了,相当于又打开了一个新的页原创 2018-01-23 14:37:11 · 2127 阅读 · 1 评论 -
详解前端二进制:Blob、File、FileReader、ArrayBuffer、TypeArray、DataView
当前,前端对二进制数据有许多的API可以使用,这丰富了前端对文件数据的处理能力,有了这些能力,就能够对图片等文件的数据进行各种处理。本文将着重介绍一些前端二进制数据处理相关的API知识,如Blob、File、FileReader、ArrayBuffer、TypeArray、DataView等等。转载 2023-12-06 18:31:26 · 814 阅读 · 0 评论 -
请求pdf文件流并进行预览
最近做了一个需求就是预览pdf等文件,不过后端返回的是一个文件流,需要前端做一定地处理才行。我们来看一下具体的实现方式。原创 2023-11-24 18:36:31 · 1858 阅读 · 0 评论 -
使用pdf.js插件预览pdf文件时怎么去掉pdf文件的浏览记录
然后把这一行代码注释掉就可以了,就实现了清除缓存或者浏览记录的目的。最近在开发pdf文件预览相关的需求,我用的插件是pdf.js。每次预览一个pdf文件时,原创 2023-11-23 16:58:21 · 740 阅读 · 0 评论 -
pdf.js插件怎么控制工具栏的显示与隐藏
最近做了一个需求,需要实现pdf文件的预览,但是只是提供预览功能,不需要展示相关的工具栏,所以需要把工具栏隐藏掉。我用的插件是pdf.js。原创 2023-11-23 16:41:10 · 3516 阅读 · 0 评论 -
vue3项目使用pdf.js插件实现:搜索高亮、修改pdf.js显示的页码、向pdf.js传值、控制搜索、处理接口文件流
PDF.js是基于HTML5技术构建的,用于展示可移植文档格式的文件(PDF),它可以在现代浏览器中使用且无需安装任何第三方插件。pdf.js主要包含两个库文件pdf.js:负责API解析pdf.worker.js:负责核心解析。转载 2023-11-23 15:59:29 · 3841 阅读 · 5 评论 -
vue3中实现txt格式文件预览(纯前端)
在平常的工作当中,已经会遇到文件上传后需要预览的功能,比如docx,doc,xls,xlsx,ppt,pdf,txt,图片,视频等格式的文件,其实也可以让后端人员写接口解析,本着不想麻烦别人的心态,能自己解决的绝不麻烦别人,这里简单介绍txt,docx,xlsx,mp4文件预览。转载 2023-11-20 17:43:35 · 4591 阅读 · 0 评论 -
vue3.x实现word文件的预览
Mammoth旨在转换 .docx 文档(例如由 Microsoft Word 创建的文档),并将其转换为 HTML。Mammoth的目标是通过使用文档中的语义信息并忽略其他细节来生成简单干净的 HTML。比如,Mammoth会将应用标题 1 样式的任何段落转换为 h1 元素,而不是尝试完全复制标题的样式(字体,文本大小,颜色等)。转载 2023-11-20 17:05:57 · 1826 阅读 · 0 评论 -
动态加载js文件的方法封装
总结一下,动态加载js文件的方法封装。原创 2023-11-18 16:53:14 · 148 阅读 · 0 评论 -
如何使用JavaScript实现纯前端读取和导出excel文件
由SheetJS出品的js-xlsx是一款非常方便的只需要纯JS即可读取和导出excel的工具库,功能强大,支持格式众多,支持xls、xlsx、ods(一种OpenOffice专有表格文件格式)等十几种格式。本文全部都是以xlsx格式为例。普通版本不支持定义字体、颜色、背景色等,有这个功能需要的可以使用pro版,好像是要收费的,因为官网没看到下载地址。转载 2023-11-18 16:51:15 · 6347 阅读 · 0 评论 -
文件上传、下载的总结
如果要实现自定义上传操作(自己写函数,并定义上传接口),需要给el-upload标签加上http-request属性,并赋予它对应的方法;原创 2023-07-31 11:05:14 · 385 阅读 · 0 评论 -
EventTarget.removeEventListener() 取消监听事件不起作用(失效)的原因
1.监听事件addEventListener() 语法2.取消事件removeEventListener() 语法参数说明type: 表示监听事件类型的字符串。listener: 目标事件绑定的回调函数options: 一个指定有关 listener 属性的可选参数对象useCapture: 指定需要移除的 EventListener 函数是否为捕获监听器。true 表示“事件捕获”, 默认为false, 表示“事件冒泡”3. removeEventListener() 移除成功需要满足。转载 2023-05-19 14:13:48 · 3283 阅读 · 0 评论 -
10 个 JS 中 try...catch 使用技巧
但是,在生产环境中使用时,建议具体指定要捕获的异常类型,以便更好地诊断问题。转载 2023-04-24 09:40:11 · 17125 阅读 · 0 评论 -
一分钟说完JSONP请求,面试满分答案
**JSONP**是JSON with Padding的略称,**JSONP**为民间提出的一种跨域解决方案,通过客户端的script标签发出的请求方式。转载 2022-09-22 10:15:12 · 192 阅读 · 0 评论 -
一文讲懂什么是函数柯里化,柯里化的目的及其代码实现
柯里化是一种转换,将f(a,b,c)转换为可以被以f(a)(b)©的形式进行调用。JavaScript 实现通常都保持该函数可以被正常调用,并且如果参数数量不足,则返回偏函数。柯里化让我们能够更容易地获取偏函数。就像我们在日志记录示例中看到的那样,普通函数 log(date, importance, message) 在被柯里化之后,当我们调用它的时候传入一个参数(如 log(date))或两个参数(log(date, importance))时,它会返回偏函数。转载 2022-09-05 18:28:54 · 481 阅读 · 0 评论 -
总结--pdf文件预览优化并实现切片下载
Pdf文件太大—要做成切片下载—技术选型—pdf.js—搜索技术方案—公众号文章—开始—拿到后端切片数据(五页为一个切片)— 获取总页数和每张pdf的宽高—获取当前屏幕的宽度— 和pdf的宽度做对比得到缩小的比例—根据比例得出每张pdf页面渲染的宽高和整个所有页面的总高度—创建canvas元素,渲染pdf页面(pdf.js中的方法,可以直接渲染canvas)—创建div元素并且包裹canvas元素,并把div放在页面对应的位置上,使用position:absolute,绝对定位的方式。---- 监听滚动..原创 2022-01-04 16:25:58 · 1907 阅读 · 0 评论 -
动画animationend 事件在活动红包雨中的应用
最近搞了一个类似于红包雨的活动,研究了一下红包雨的实现方式。其中animationend 事件在 CSS 动画完成后触发,这个是我首次接触到的,所以就准备记录下来。红包雨代码如下:<template> <div class="ser_home"> <ul class="red_packet" id="red_packet"> <template v-for="(item, index) in liParams"> &原创 2021-12-30 18:02:33 · 753 阅读 · 0 评论 -
HTML中的Content-Type的类型
Content-Type的类型如下:常见的媒体格式类型如下:text/html : HTML格式text/plain :纯文本格式text/xml : XML格式image/gif :gif图片格式image/jpeg :jpg图片格式image/png:png图片格式以application开头的媒体格式类型:application/xhtml+xml :XHTML格式application/xml : XML数据格式application/atom+xml :Ato转载 2021-09-18 14:08:45 · 1665 阅读 · 0 评论 -
清除HTML页面引入的js和css文件的缓存
一般H5页面在线上如果更改了js或css文件,必须手动刷新才会更新,有的在微信或者QQ上面,刷新也不管用,所以怎么清除缓存呢?首先思路是引入的文件加上时间戳变量,每次进页面,都会重新加载一次怎么加时间戳呢,在引入的链接后直接加并不管用嘿嘿,废话不多说,直接动态添加script或style标签,添加上时间戳或者随机数不变的css或js,直接引入,需要更新的才动态引入~1.动态添加js&l...转载 2019-09-26 22:25:01 · 1135 阅读 · 0 评论 -
优化方法总结
这篇文章主要是总结平时用到的一些更优的方法或者看到别人用的比较好的方法。积少成多。1.使用 includes 处理多重条件if( code === '202' || code === '203' || code === '204' ){ someMethod()}复制代码可以改成if( ['202','203','204'].includes(code) ){ someM...原创 2019-09-18 22:36:29 · 298 阅读 · 0 评论 -
indexOf总结(读书知识总结)
老感觉自己的基础知识不是很好,于是就准备在仔细的看一本书,打牢基础知识。深入浅出javascript这本书,决定从头到尾看一下,在总结一下。indexOf()的用法:返回字符中indexof(string)中字串string在父串中首次出现的位置,从0开始!没有返回-1;方便判断和截取字符串!以前string这个字符串我都是写单个字母,于是就渐渐忘了,string它是一个字符串,一写一个单词就原创 2017-06-28 09:42:59 · 478 阅读 · 0 评论 -
new构造函数之后执行的步骤
今天在重温ES6中的promise一章的时候,看到这样一段:Promise 新建后就会立即执行。let promise = new Promise(function(resolve, reject) { console.log('Promise'); resolve();});promise.then(function() { console.log('resolved.')...原创 2020-02-23 11:52:01 · 1445 阅读 · 1 评论 -
js模块化之CommonJS、AMD、CMD、UMD、ES6 Module的理解
这是一篇关于js模块化编程的总结记录。随着网站逐渐变成”互联网应用程序”,嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等……开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。Javascript社区做了很多努力,在现有的运行环境中,实现”模块”的效果。CommonJS这里的Common转载 2021-09-01 13:58:24 · 505 阅读 · 0 评论 -
CommonJS 与 ES6 Module 的使用与区别
作者:Lpyexplore原文链接:https://mp.weixin.qq.com/s/2FNcFl-SBE3fciB0ad0_mg学了JS并且用过Node.js后,对模块化应该是有所了解和使用了,那么一定见过以下两种模块导入导出的方式第一种: ES6 Module// B.jsfunction show() { console.log('show方法被执行')}export default show// A.jsimport show from './B.js'show()转载 2021-08-28 21:51:40 · 295 阅读 · 0 评论