news 2026/6/10 23:04:51

前端开发总结的一些技巧和实用方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端开发总结的一些技巧和实用方法

本文主要介绍一些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 : 'john@doe.com' } } } const user = getUser(true); console.log(user); // outputs { name: "John", surname: "Doe", email: "john@doe.com" } const userWithoutEmail = getUser(false); console.log(userWithoutEmail); // outputs { name: "John", surname: "Doe" }

3. 动态属性名

const dynamic = 'email'; let user = { name: 'John', [dynamic]: 'john@doe.com' } console.log(user); // outputs { name: "John", email: "john@doe.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="" rel="opener"></a>

17.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.数组提取不重复的新值

如果有下面两个数组,需要提取第二个中与第一个数组中不重复的新值,也就是单独把5,6提取出来

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 1:20:37

GitHub 热榜项目 - 日榜(2026-01-26)

GitHub 热榜项目 - 日榜(2026-01-26) 生成于&#xff1a;2026-01-26 统计摘要 共发现热门项目&#xff1a; 9 个 榜单类型&#xff1a;日榜 本期热点趋势总结 本期GitHub热榜凸显AI应用开发的蓬勃创新&#xff0c;聚焦于高效能、低代码和跨模态技术。语音AI领域表现抢眼&a…

作者头像 李华
网站建设 2026/6/10 20:40:30

Java技术八股学习Day25

操作系统&#xff08;二&#xff09;内存管理&#xff08;1&#xff09;内存管理核心职责内存管理是操作系统的核心功能&#xff0c;主要负责内存分配与回收&#xff08;通过 malloc 申请、free 释放&#xff09;、地址转换&#xff08;虚拟地址转物理地址&#xff09;、内存扩…

作者头像 李华
网站建设 2026/6/10 19:58:02

有没有像HiPlot一样方便的科研数据可视化绘图网站或者软件?

在当今科研领域&#xff0c;数据可视化的重要性不言而喻。无论是学术研究还是工业应用&#xff0c;一张好的图表往往能够帮助我们更直观地理解复杂的数据关系&#xff0c;发现隐藏的规律。然而&#xff0c;传统的数据可视化工具往往需要较高的编程技能和大量的时间投入&#xf…

作者头像 李华
网站建设 2026/6/10 19:59:09

光伏VSG仿真Simulink

光伏vsg仿真simulink 咱们今天聊点硬核的——光伏电站并网时怎么用虚拟同步发电机&#xff08;VSG&#xff09;技术稳住电网。搞过新能源并网的都知道&#xff0c;光伏输出功率跟天气挂钩&#xff0c;动不动就给你整出个电压波动&#xff0c;这时候VSG就像个"戏精"&…

作者头像 李华
网站建设 2026/6/10 22:22:09

基于斑点鬣狗的LSSVM回归预测:PSO - LSSVM的探索

基于斑点鬣狗的LSSVM回归预测PSO-LSSVM 为了提高最小二乘支持向量机&#xff08;lssvm&#xff09;的回归预测准确率&#xff0c;对lssvm中的惩罚参数和核惩罚参数利用斑点猎狗算法进行优化。 Matlab 代码 在机器学习的领域中&#xff0c;提高预测模型的准确率一直是众多研究者…

作者头像 李华
网站建设 2026/6/10 1:00:24

20260126_215218_RAG(Retrieval-Augmented_Genera

RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 是大语言模型应用中的一项核心技术框架。简单来说&#xff0c;它的核心思想是&#xff1a;先检索&#xff0c;后生成。 为了让一个只会“凭空想象”的大模型变成一个能“引经据典”的专家…

作者头像 李华