
JavaScript/TypeScript
JavaScript、TypeScript、ES6+、Promise、async/await、Proxy、模块化等
努力挣钱的小鑫
每天做一点,进步一点,够了!如果帮到了朋友你,希望得到你的关注!
展开
-
【JavaScript】js 使用 fetch 获取流式数据
【代码】【JavaScript】js 使用 fetch 获取流式数据。原创 2024-12-10 11:00:51 · 1099 阅读 · 0 评论 -
【JavaScript】前端生成随机 id 的库
UUID是一种软件建构中的通用唯一标识符标准。它可以保证全球范围内的唯一性,即使在分布式系统中也不会发生冲突。JavaScript中可以使用。:这是最简单的生成随机数的方法,但它不能保证全局唯一性,因此通常只适用于在同一页面内部生成的ID。这个方法生成的UUID非常长,并且几乎可以保证全球唯一性,是生成随机ID的最佳选择之一。:结合当前时间戳和随机数,可以生成较为唯一的ID,但仍然存在冲突的可能性。然后,您可以在您的JavaScript文件中导入。原创 2024-08-12 10:43:45 · 1581 阅读 · 0 评论 -
【JavaScript】如何给 blob 对象添加文件名
要给Blob对象添加文件名,可以通过将Blob对象转换为File对象来实现。File对象继承自Blob对象,并且提供了额外的属性,包括name属性,这使得你能够为文件设置一个名称。这种方法在大多数现代浏览器中都是可行的,但请注意,Internet Explorer不支持File构造函数。原创 2024-08-08 15:53:24 · 1962 阅读 · 0 评论 -
【JavaScript】使用 responseType: “blob“ 请求文件流时拦截报错信息处理
FileReader 对象允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。下载文件时,后台返回错误的 code 无法直接拦截,因为此时数据已经被包装成 blob,所以需要将 blob 转换为 json 解析。readAsText 方法可以将 Blob 或者 File 对象转根据特殊的编码格式转化为内容 (字符串形式)原创 2024-04-29 09:53:50 · 1162 阅读 · 0 评论 -
【JavaScript】使用 AbortController 对象中断 fetch 的文本流传输
正如我们所知道的,fetch 返回一个 promise。例如,如果用户在我们网站上的操作表明不再需要某个执行中的 fetch。当一个 fetch 被中止,它的 promise 就会以一个 error AbortError reject,因此我们应该对其进行处理,例如在 try…正如我们所看到的,AbortController 只是在 abort() 被调用时传递 abort 事件的一种方式。另一部分是触发取消:在需要的时候调用 controller.abort()。控制器是一个极其简单的对象。原创 2024-04-28 15:49:39 · 1245 阅读 · 3 评论 -
【JavaScript】移动端长按事件触发录音
【JavaScript】移动端长按事件触发录音。原创 2024-04-26 09:26:15 · 457 阅读 · 1 评论 -
【JavaScript】生成随机的十六进制颜色
【代码】【JavaScript】生成随机的十六进制颜色。原创 2024-03-21 16:51:31 · 682 阅读 · 0 评论 -
【JavaScript】requestAnimationFrame 实现表格的流畅滚动
【代码】【JavaScript】requestAnimationFrame 实现表格的流畅滚动。原创 2024-03-13 11:35:48 · 520 阅读 · 1 评论 -
【JavaScript】使用 scrollIntoView 实现描点跳转定位
behavior 可选,定义滚动是立即的还是平滑的动画。auto:滚动行为由 scroll-behavior 的计算值决定。instant:滚动应该通过一次跳跃立刻发生。smooth:滚动应该是平滑的动画。原创 2024-01-17 13:47:51 · 684 阅读 · 0 评论 -
【JavaScript】JS 通过 lodash 获取树结构数组的全部 id
上述代码中使用了 _.flatMap 函数来展开树结构数组,并在递归调用中提取每个节点的 ID。输出结果将会是一个包含树结构中所有节点 ID 的数组 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]。你可以根据实际的树结构数组进行调整和应用。要使用 Lodash 获取树结构数组的全部 ID,可以使用递归函数来遍历整个树结构并提取 ID。原创 2023-12-25 14:28:09 · 1813 阅读 · 0 评论 -
【JavaScript】iframe postMessage 通信
【代码】iframe postMessage 通信。原创 2023-12-14 09:45:24 · 269 阅读 · 0 评论 -
【JavaScript】后端返回的二进制流音频数据或本地音频资源,前端如何播放?
如果我们要使用本地的音频资源,在 vue3 中那么我们需要对资源的地址做一下处理。原创 2023-11-27 11:10:35 · 5246 阅读 · 0 评论 -
【JavaScript】fetch 处理流式数据,实现类 chatgpt 对话
本文只包含最基础的请求后端大佬给得对话接口,大部分模型的传参是差不多的,原创 2023-11-16 17:43:59 · 1323 阅读 · 0 评论 -
【Javascript】前端对文件进行md5计算再上传,以节省OSS云端存储空间
文档介绍较少,看看就能使用↓。原创 2023-07-17 10:03:08 · 2640 阅读 · 1 评论 -
【TypeScript】Element 组件导入在 TypeScript 5 报错:模块 ““element-plus““ 没有导出的成员。。。
moduleResolution:模块解析策略,是指编译器在查找导入模块内容时所遵循的流程。因此目前要解决报错,我们只需要修改 tsconfig.json 下的为 node 就行。typescript 5.0版本升级,使用了。原创 2023-05-24 09:56:52 · 1673 阅读 · 3 评论 -
【JavasSript】后台返回 csv base64 下载
const exort = async () => { try { const { data } = await zhjxDownloadFile({ meta: { user_token: localStorage.getItem('user_token'), file_name: activeName.value, ...原创 2023-05-08 11:44:00 · 133 阅读 · 0 评论 -
【TypeScript】document.body.style TS 报错 Cannot assign to 'style' because it is a read-only property.ts...
报错信息解决方法style对象提供了一个cssText属性,支持设置多种CSS样式:document.body.style.cssText = `width:${targetX}px; height:${targetY}px; transform: scale(${scaleRatio}) translateX(-50%); left: 50%`;还有其他方法也可以,参考下面的文章...原创 2023-04-28 14:20:00 · 562 阅读 · 0 评论 -
【JavaScript】 e.deltaY e.wheelDeltaY 在mac上缩放只能放大或者放小问题
mac 的 e.deltaY 值和win是不相同的,因此不能用具体数值(win滚轮向上是e.deltaY是-100,e.wheelDeltaY是120)判断// mac 和 win 上的值不一样 只能判断是否大于小于0 console.log('e.deltaY', e.deltaY); console.log('e.wheelDeltaY', e.wheelDeltaY); //...原创 2023-03-28 10:53:00 · 354 阅读 · 0 评论 -
【JavaScript】各种常见手写题汇总复习
防抖function throttle(fun, time) { let timer = null return () => { if (timer) { return } fun() timer = setTimeout(() => { timer = null }, time) }}节流funct...原创 2022-08-22 11:15:00 · 85 阅读 · 0 评论 -
【JavaScript】内存管理和垃圾收集机制
师傅给我的模拟面试,感觉我个人对这点没深入吧,再总结学习以下。简介像其他的编程语言都有各自底层的内存管理接口,比如 C 语言的 malloc() 和 free()。但是,JavaScript 是在创建变量时自动分配内存,在不使用时自动释放,这个释放过程称为垃圾回收。JavaScript 的这种自动释放的机制可以让我们开发者在大部分时间都不需要关心 JavaScript 的内存管理,但话...原创 2022-07-22 12:22:00 · 74 阅读 · 0 评论 -
【JavaScript】手写深拷贝 2.0(更新 2022-07-15)
前言鄙人老版 js 深拷贝博客链接,当时写的存在很多不足...现在跟着方应杭老师复习了下,收获满满。用 JSONconst b = JSON.parse(JSON.stringify(a))缺点:不支持 Date、RegExp(正则)、函数等数据;不支持引用(即环状结构,类似 window.self = window)。用递归基础版支持 Date、RegExp(正则...原创 2022-07-15 00:06:00 · 89 阅读 · 0 评论 -
【JavaScript】将数组某个元素排到第一位
实现开发中需要将某一类型的 item 排到首位(为什么后端没有给我好好排!!!),反正就要咋们前端做(无奈+摊手)。用到了数组的 filter、map、unshift、splice,感觉这个操作还是可以复习下 Js 数组 api 的很多东西。...原创 2022-07-12 16:03:00 · 654 阅读 · 0 评论 -
【JavaScript】从实现函数柯里化复习 JavaScript 核心知识
// 柯里化定义:一个函数可以接受多个参数,反复被调用// fn(1,2,3,4,5)(6,7)(8,9,10) 该技术被命名为函数柯里化// 例子:求和功能,得到 55 的结果// 不固定参数个数的函数 √// 第一次执行返回函数 √// 后续执行仍然返回函数 √// 能缓存参数 √// 内部函数 闭包 二次缓存函数 √// 闭包的应用场景:避免全局变量的命名冲突func...原创 2022-07-03 15:05:00 · 76 阅读 · 0 评论 -
【JavaScript】如何根据长度并计算渲染px width宽度
需求公司项目需求是要做动态响应式表头,因此就要动态渲染表格表头宽度在一定范围内(100px-200px)。完整实现图:实现过程这里就不讲css自动超出省略了,主要是然后根据后台返回的字符串计算实际渲染字符宽度,并设置给 element 表头的 min-width:min-width="calcMinWidth(item.displayName)"核心函数代码:calcMinWidt...原创 2022-03-11 15:02:00 · 464 阅读 · 0 评论 -
【JavaScript】模糊搜索
需求展示前端做模糊搜索,展示搜索的字符串。关键代码实现// selectedColumns 搜索数据// selectParam 用户输入字符串this.selectedColumns.forEach((item, index) => { let str = item.displayName.toLowerCase() if (str.match(this.selectPar...原创 2022-02-24 15:55:00 · 79 阅读 · 0 评论 -
【JavaScript】获取url中的参数方法封装
getParams() { const url = window.location.href const index = url.indexOf('?') + 1 const params = url.substr(index) const arr = params.split('&') const o = {} ...原创 2021-11-17 09:44:00 · 65 阅读 · 0 评论 -
【JavaScript】下载文件 Blob 流数据函数封装和使用
1.请求设置请配置 responseType: 'blob'export function xxx(id) { return request({ url: `xxx?id=${id}`, method: 'get', responseType: 'blob' })}2.通过 res.headers['content-disposition'] 获取文件名,也...原创 2021-10-14 10:32:00 · 131 阅读 · 0 评论 -
【JavaScript】后台返回来的csv流数据如何导出成csv文件
代码/** * @description 导出csv * @param {String} textName 导出的文件名 * @param {*} data 流数据 */function downloadByPeople(textName, data) { const url = genUrl(data, {}) //{}指的是表头,data是后台返回来的流数据 const ...原创 2021-09-15 17:36:00 · 129 阅读 · 0 评论 -
【JavaScript】前端路由原理之 hash 模式和 history 模式
什么是路由?个人理解路由就是浏览器 URL 和页面内容的一种映射关系。比如你看到我这篇博客,博客的链接是一个 URL,而 URL 对应的就是我这篇博客的网页内容,这二者之间的映射关系就是路由。其中路由又分为前端路由和后端路由,由于目前是大部门开发模式都是前后端分离开发模式,其大部分应用都是 SPA(simple Page Application,单页面应用),个人的工作也是由后端提供API...原创 2021-09-10 22:42:00 · 151 阅读 · 0 评论 -
【JavaScript】手写深度比较
代码如下// 判断是否是对象或者是数组function isObject(obj) { if (typeof obj == 'object' && obj !== null) { return true }}// 全相等function isEqual(obj1, obj2) { // 如果都是值类型 直接进行比较 if (!isObject(o...原创 2021-07-06 10:01:00 · 71 阅读 · 0 评论 -
【JavaScript】本地存储localStorage
在学习jQuery制作todolist项目时用到了js的本地存储,发现好像没学,因此记录下学习过程一.什么是js本地存储?localStorage会可以将第一次请求的数据之间存储到本地,这个相当于一个大小5M的针对前段页面的数据库二.具体使用方式// 1.通过localStorage 没有时间限制的数据存储var date = ['数据01', '数据02', '数据03'];loc...原创 2021-07-06 10:00:00 · 116 阅读 · 0 评论 -
【JavaScript】数组对象重排序方法 sort
由于在重新复习js的过程中,再一次接触到了js数组对象排序方法之一——sort(),先简单讲一下sort()方法的用法:主要用于数组对象的排序,可以升序,也可以降序,但存在一个问题,如下代码:var arr = [0, 3, 2, 16, 15, 10];arr.sort();console.log(arr); //[0, 10, 15, 16, 2, 3]虽然该方法对数组进行了排序,...原创 2021-07-06 09:58:00 · 180 阅读 · 0 评论 -
【JavaScript】null和 undefined 的区别是什么?
面试被问到,不是很会,学习下。区别null 表示没有对象(空对象指针),转化为数值时为 0 ,这也是为什么 typeof null 返回 object 的原因。console.log(Number(null)) // 0console.log(typeof null) // objectundefined 表示缺少值,转化为数值时为 NaNconsole.log(Number(und...原创 2021-07-06 09:56:00 · 62 阅读 · 0 评论 -
【JavaScript】原型与原型链
原型pototype每个函数都有一个 prototype 属性,函数的 prototype 属性指向了一个对象,这个对象正是调用该构造函数而创建的实例的原型 。每一个 JavaScript 对象(null 除外)在创建的时候就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型"继承"属性,如何关联呢?就是通过下面的 __proto__。proto每一个JavaScr...原创 2021-07-06 09:55:00 · 52 阅读 · 0 评论 -
【JavaScript】去重
ES6 Setfunction unique(arr) { return Array.from(new Set(arr))}let arr = [1, 2, 3, 4, 5, 1, 2, 3]console.log(unique(arr))// [1, 2, 3, 4, 5]当前项和剩余项比较function unique(arr) { let newArr = [] ...原创 2020-08-13 00:39:00 · 68 阅读 · 0 评论 -
【JavaScript】ES6常用知识汇总
ES6模块化如何使用,开发环境如何打包?1.模块化的基本语法/* export 语法 */// 默认导出export default { a: '我是默认导出的',}// 单独导出export function fn1() { console.log('我是函数1')}export function fn2() { console.log('我是函数2')}/*...原创 2020-07-28 22:09:00 · 74 阅读 · 0 评论