前端开发总结的一些技巧和实用方法
本文主要介绍一些JS中用到的小技巧和实用方法可以在日常Coding中提升幸福度也可以通过一些小细节来增加代码可读性让代码看起来更加优雅后续将不断更新1.数组 map 的方法 (不使用Array.Map)Array.from 还可以接受第二个参数作用类似于数组的map方法用来对每个元素进行处理将处理后的值放入返回的数组。如下const cities [ { name: Paris, visited: no }, { name: Lyon, visited: no }, { name: Marseille, visited: yes }, { name: Rome, visited: yes }, { name: Milan, visited: no }, { name: Palermo, visited: yes }, { name: Genoa, visited: yes }, { name: Berlin, visited: no }, { name: Hamburg, visited: yes }, { name: New York, visited: yes } ]; const cityNames Array.from(cities, ({ name}) name); console.log(cityNames); //[Paris, Lyon, Marseille, Rome, Milan, Palermo, Genoa, Berlin, Hamburg, New York]2.有条件的对象属性不再需要根据一个条件创建两个不同的对象可以使用展开运算符号来处理。let getUser (emailIncluded) { return { name: John, surname: Doe, ...emailIncluded { email : johndoe.com } } } const user getUser(true); console.log(user); // outputs { name: John, surname: Doe, email: johndoe.com } const userWithoutEmail getUser(false); console.log(userWithoutEmail); // outputs { name: John, surname: Doe }3. 动态属性名const dynamic email; let user { name: John, [dynamic]: johndoe.com } console.log(user); // outputs { name: John, email: johndoe.com }4.函数默认参数妙用场景假设我们又如下的初始化工作需要进行在代码的最开始我们需要对config对象进行初始化工作function initConfig(config) { config.map((item) { item.content Number(item.content) }) }如果我们不小心忘记给它传递参数浏览器会报如下错误提示我们 config 没有 map 方法因为此时 config 为 undefined解决办法我们可以给函数的参数加上一个默认的值function initConfig(config []) { config.map((item) { item.content Number(item.content) }) }5.监听DOM元素是否在可视区域内场景如果打开网页DOM元素在可视区域内就不展示一个div反之如果需要滑动网页才能让这个DOM元素出现在可视区域就展示这个div。这里分享一个vue的做法。mounted(){ let recommend document.getElementById(replyList),that this; let observer new IntersectionObserver(function(entries){ entries.forEach( function(element, index) { if (element.isIntersecting ) { //用recommendShow这个布尔值来控制DOM是否显示 that.recommendShow false; } else { that.recommendShow true; } }); }, { root: null, threshold:[0, 1] }); observer.observe(recommend) }16.谷歌浏览器A标签跳转新标签导致sessionStorage无效解决方法主动添加 rel“opener” 属性即可如下。a href relopener/a17.Array.find如果你曾经编写过普通 JavaScript 中的 find 函数那么你可能使用了 for 循环。在 ES6 中介绍了一种名为 find的新数组函数可以实现 for 循环的简写。const pets [ { type: Dog, name: Max}, { type: Cat, name: Karl}, { type: Dog, name: Tommy}, ] function findDog(name) { for(let i 0; i简写为let pet pets.find(pet pet.type Dog pet.name Tommy); console.log(pet); // { type: Dog, name: Tommy }8.数组提取不重复的新值如果有下面两个数组需要提取第二个中与第一个数组中不重复的新值,也就是单独把56提取出来let arr1 [1,2,3]; let arr2 [2,5,6]; let arr3 []; arr2.forEach(item{ if(!arr1.includes(item)){ arr3.push(item); } }) console.log(arr3);//[5,6]Git仓库https://gitee.com/ZhongBangKeJi/CRMEB

相关新闻

全网最全本科生必看TOP10 AI论文工具测评

全网最全本科生必看TOP10 AI论文工具测评

全网最全本科生必看TOP10 AI论文工具测评 2026年本科生AI论文工具测评:为何值得一看 在人工智能技术不断渗透学术领域的今天,越来越多的本科生开始依赖AI工具提升论文写作效率。然而,面对市场上五花八门的AI写作平台,如何选择真正…

2026/7/6 1:07:56 阅读更多 →
视频会议设备简单易用品牌

视频会议设备简单易用品牌

选视频会议设备的时候,“好用、容易上手”其实是最重要的一点,但大家干活的时候反而容易把它给忘了。有些设备搞起来太麻烦,步骤又多,用着用着还卡,搞得很多团队都不敢碰专业会议系统。连通宝视频会议系统,…

2026/7/3 4:47:57 阅读更多 →
如果你运行一个没有电阻的MOSFET,会发生什么?

如果你运行一个没有电阻的MOSFET,会发生什么?

还没上电就短路?讲真,90%的新手都死在了MOS管的这个细节上!兄弟们,如果你手里的MOS管一上电就冒烟,或者电源芯片发烫到能煎蛋,先别急着怀疑人生,也不要急着换芯片。 停下来,检查一下…

2026/7/3 18:32:40 阅读更多 →

最新新闻

大型系统的依赖管理与解耦

大型系统的依赖管理与解耦

大型系统的依赖管理与解耦在软件工程领域,构建和维护大型系统是一项复杂且持续的挑战。随着业务需求的膨胀和技术的迭代,系统规模如同滚雪球般增长,模块间的耦合度往往也随之悄然攀升。最终,系统可能变得僵化、脆弱且难以演进&…

2026/7/6 1:07:31 阅读更多 →
深入理解Go语言内存模型与优化

深入理解Go语言内存模型与优化

深入理解Go语言内存模型与优化Go语言以其简洁的语法、强大的并发模型和出色的性能,在现代软件开发中占据了重要地位。然而,要真正释放Go程序的潜力,开发者必须深入理解其内存模型,并掌握相关的优化技巧。Go的内存管理虽然由垃圾回…

2026/7/6 1:05:31 阅读更多 →
松下伺服电子齿轮比计算:从脉冲当量到参数设置的 3 个实战案例

松下伺服电子齿轮比计算:从脉冲当量到参数设置的 3 个实战案例

松下伺服电子齿轮比实战指南:从脉冲当量到参数设置的深度解析在工业自动化领域,伺服系统的精度控制一直是工程师们关注的核心问题。作为松下伺服系统的关键参数之一,电子齿轮比的正确设置直接关系到设备的运动精度和响应速度。本文将从一个全…

2026/7/6 1:05:31 阅读更多 →
V4L2 零拷贝与内存分配机制

V4L2 零拷贝与内存分配机制

在 Linux 嵌入式多媒体与 AI 边缘计算(如 RK3588 平台)中,为了实现极低延迟和降低 CPU 占用,通常需要打通摄像头(Camera)、图像格式转换模块(RGA/GPU)、AI 加速器(NPU&am…

2026/7/6 1:01:30 阅读更多 →
KYC形同虚设?揭秘黑产绕过金融机构身份核验全套手法

KYC形同虚设?揭秘黑产绕过金融机构身份核验全套手法

KYC(Know Your Customer,了解你的客户)并非信贷行业的专属课题,而是数字经济时代每一个需要建立"信任关系"的商业场景所共有的核心命题。无论是金融、电商、出行还是短视频,当平台试图确认"站在对面的究…

2026/7/6 1:01:30 阅读更多 →
Agentic Testing实战:自主AI测试代理架构与实现

Agentic Testing实战:自主AI测试代理架构与实现

# Agentic Testing实战:自主AI测试代理架构与实现## 一、背景与挑战:传统测试自动化的天花板当CI/CD流水线每天触发数百次测试执行,当微服务架构的API变更频率以分钟计,传统基于录制回放或关键字驱动的测试框架逐渐暴露出结构性缺…

2026/7/6 1:01:30 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻