JavaScript&TypeScript
文章平均质量分 97
好用不常见的js语法,也会带一点ts的小技巧,学实际需求中好用的,精要的,会用的。
watermelo37
一个giser,coder,noder,做不只专注于业务逻辑的前端工程师,java、docker、数据库、python什么都学什么都做
展开
-
地图可视化的艺术:深入比较Mapbox、OpenLayers、Leaflet和Cesium,不同场景下应如何选择地图库
选择合适的地图库取决于项目的需求、团队的技术栈以及预算等因素。简单来说,新手可以从leaflet入手;GIS开发使用openlayers会更顺手一些;mapbox适应大多数2D和2.5D场景,可视化效果好,但是不开源;cesium更侧重于3D场景。原创 2024-10-08 11:08:58 · 2663 阅读 · 187 评论 -
MutationObserver详解+案例——深入理解 JavaScript 中的 MutationObserver:原理与实战案例
JavaScript 提供了多种 API 来操作 DOM 结构。而在操作 DOM 时,我们经常需要监测 DOM 的变化,这时候,MutationObserver 就显得格外有用。在这篇博客中,我们将详细介绍 MutationObserver 的工作原理,并通过几个实战案例帮助你全面掌握如何在实际项目中使用 MutationObserver。原创 2024-09-16 16:19:02 · 4461 阅读 · 83 评论 -
JavaScript中闭包详解+举例,闭包的各种实践场景:高级技巧与实用指南
闭包是JavaScript中不可或缺的部分,它不仅可以增强代码的可维护性,还能在模块化、回调处理等场景中发挥巨大作用。然而,闭包的强大也意味着需要谨慎使用,避免潜在的性能问题和内存泄漏。通过对闭包原理的深入理解以及在实际项目中的灵活应用,你将能够更加高效地编写出简洁且功能强大的代码。原创 2024-08-26 10:49:39 · 4759 阅读 · 96 评论 -
ES6解构赋值详解;全面掌握:JavaScript解构赋值的终极指南
解构赋值是一个强大且灵活的工具,它使得从数组和对象中提取数据变得更加简单和直观。通过掌握解构赋值的基本语法和实践,你可以写出更加简洁、可读性更强的代码。在实际项目中,解构赋值广泛应用于函数参数处理、变量交换、嵌套结构操作等场景,极大地提升了代码的灵活性和简洁度。原创 2024-08-22 20:42:51 · 3013 阅读 · 72 评论 -
Array.forEach实战详解:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提高Array.forEach的性能
巧用Array.forEach:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提高Array.forEach的性能原创 2024-08-12 16:57:58 · 3496 阅读 · 69 评论 -
一站搞定原型链:深入理解JavaScript的继承机制
原型链是什么?JavaScript的继承机制如何实现?原型链是对象通过原型实现属性和方法继承的一种机制。每个对象都有一个 __proto__ 属性,指向它的原型对象。每个函数(包括构造函数)都有一个 prototype 属性,指向一个对象,这个对象的属性和方法可以被实例共享。构造函数创建对象时,新对象的 __proto__ 属性指向构造函数的 prototype 对象。继承可以通过设置原型对象实现,也可以使用 ES6 的 class 语法糖。原创 2024-08-11 19:35:56 · 1949 阅读 · 12 评论 -
分片上传技术全解析:原理、优势与应用(含简单实现源码)
分片上传是什么?什么时候需要分片上传?分片上传如何实现?分片上传通过将大文件分割成多个小的片段或块,然后并行或顺序地上传这些片段,从而提高上传效率和可靠性,特别适用于大文件的上传场景,尤其是在网络环境不佳时,分片上传能有效提高上传体验。原创 2024-08-01 16:53:41 · 2352 阅读 · 50 评论 -
属性描述符初探——Vue实现数据劫持的基础
属性描述符(Property Descriptor)在JavaScript中是一个特殊的对象,它定义了对象属性的行为和特性。属性描述符有很多内容可以挖掘,比如defineProperty与Proxy的区别,比如vue2与vue3实现数据劫持的方式有什么不同,实现效果有哪些差异等,这篇博文只是入门,以后有时间再深挖。原创 2024-07-05 14:35:11 · 2340 阅读 · 28 评论 -
最细最有条理解析:事件循环(消息循环)是什么?为什么JS需要异步
单线程是异步产生的原因,事件循环是异步的实现方式。程序的运行会产生进程,进程的执行者就是线程。渲染主线程从消息队列的调度结果中获取要执行的任务,并不断循环读取和进行,这个过程就是事件循环。为什么需要事件循环这个技术手段,线程与进程的联系与区别,详情请看正文原创 2024-07-01 21:26:57 · 2032 阅读 · 32 评论 -
什么是深拷贝;深拷贝和浅拷贝有什么区别;深拷贝和浅拷贝有哪些方法(详解)
浅拷贝适用于只复制对象的第一层属性,且这些属性不是引用类型。深拷贝适用于需要完全独立的副本,包括对象和数组的嵌套结构。选择哪种拷贝方式取决于你的具体需求和场景。此外,要注意赋值运算符连浅拷贝都算不上,是纯粹的引用,没有创建新的数组/对象。原创 2024-06-15 17:21:09 · 2600 阅读 · 15 评论 -
对象数据的读取,看这一篇就够了!Object.keys()、Object.values()和Object.entries()用法详解;如何获取对象原型链上的属性
Object.keys()、Object.values()和Object.entries()都是利于对象操作的便捷方法,能有效提升数据处理的效率。原创 2024-06-07 21:58:32 · 2507 阅读 · 2 评论 -
别再用双层遍历循环来做新旧数组对比,寻找新增元素了!使用array.includes和Set来提升代码可读性
这类问题的重点在于能不能突破基础思路,突破基础思路是从程序员入门变成中级甚至高级的第一步,如果所有需求都通过最基础的业务逻辑来做,是得不到成长的。原创 2024-06-01 16:06:41 · 1856 阅读 · 2 评论 -
多维数组操作,不要再用遍历循环foreach了!来试试数组展平的小妙招!array.flat()用法与array.flatMap() 用法及二者差异详解
理论上array.flat()能做的事情,array.flatMap()都可以做,但是array.flat()更简单,占用内存更少,执行更快。原创 2024-05-31 22:07:13 · 2419 阅读 · 0 评论 -
通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
array.every()可以用来数据验证、权限检查、一致性检查等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。原创 2024-05-12 16:43:25 · 1869 阅读 · 3 评论 -
通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
array.some()可以用来权限检查、表单验证、库存管理、内容审查和数据处理等数据校验工作,核心在于利用其短路机制,速度更快,节约性能。原创 2024-05-11 21:57:14 · 2658 阅读 · 4 评论 -
通过array.map()实现数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求、DOM操作、搜索和过滤,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。原创 2024-05-05 15:01:09 · 2310 阅读 · 1 评论 -
shpfile转GeoJSON;控制shp转GeoJSON的精度;如何获取GeoJSON;GeoJSON是什么有什么用;GeoJSON结构详解(带数据示例)
在使用Openlayers、leaflet、mapbox等地图控件的时候,GeoJSON几乎是不可避免打交道的数据类型,如果您想要从事gis行业相关的开发工作,本篇文章应该能为您带来一些帮助。原创 2024-05-04 14:00:00 · 3397 阅读 · 10 评论 -
通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式、聚合统计、处理树结构数据和性能优化,reduce()的使用详解(附实际应用代码)
array.reduce()可以用来数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式、聚合统计、处理树结构数据、性能优化等,使用难度相对高一些,但是能大大减少代码量。原创 2024-04-30 19:36:25 · 3435 阅读 · 4 评论 -
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。原创 2024-04-26 16:52:50 · 10972 阅读 · 11 评论 -
Mapbox添加行政区矢量图层,Mapbox添加分级设色图层,Mapbox添加文本标记图层,Mapbox给行政区矢量数据添加名称,Mapbox自定义鼠标悬浮框,Mapbox添加天地图底图
Mapbox的中国分部好像在2021年左右就退出中国了,官方文档的汉化工作也戛然而止,相关的社区建设也相当欠缺,内容比较混乱,最离谱的是mapbox官方底图库中的中国地图基本都是错的,天地图引入又麻烦......恰好我最近有一个基础的mapbox应用需求,就做了一些整理和探索,分享给大家。原创 2024-04-20 20:22:58 · 2680 阅读 · 0 评论