ES6-代码编程风格(数组、函数)

server/2025/2/9 11:22:58/

1 数组

使用扩展运算符(...)复制数组。

const itemsCopy  = [...items];

使用Array.from 方法将类似数组的对象转为数组。

const foo = document.querySelectorAll('.foo');

const nodes = Array.from(foo);

2 函数

立即执行函数可以写成箭头函数的形式。

(() => {console.log('Welcome to the Internet.');
})();

那些需要使用函数表达式的场合,尽量用箭头函数提代。因为这员工更简洁,而且绑定了this.

//bad
[1, 2, 3].map(function (x) {return x*x;
});
//good
[1, 2, 3].map((x) => {return x*x;
});
//best
[1, 2, 3].map(x => x*x);

简单的、单行的、不会复用的函数,建议采用箭头函数。 如果函数体较为复杂,行数较多,韩式应该采用传统的函数写法。

所有的配置项都应该集中在一个对象,放在最后一个参数, 布尔值不可以直接作为参数。

// bad
function divide(a, b, {option = false}) {}
// good
function divide(a, b, { option = false } = {}) {}

不要在函数体内使用arguments变量, 使用rest运算符(...)代替。 

//bad
function concatenateAll () {const args = Array.prototype.slice.call(arguments); return args.join('');
}
//good
function concatenateAll(...args) {return args.join('')
}

使用默认值语法设置函数参数的默认值。

//bad
function handleThings(opts) {opts = opts || {};
}
//good 
function handleThings(opts = {}) {
}


http://www.ppmy.cn/server/166207.html

相关文章

Maven的三种项目打包方式——pom,jar,war的区别

Maven 是一个强大的项目管理和构建工具,广泛应用于Java项目的构建和管理。Maven 支持多种打包方式,其中最常用的三种是 pom、jar 和 war。理解这三种打包方式的区别,对于正确配置和管理项目至关重要。本文将详细解释这三种打包方式的用途、特…

MR30分布式IO模块:驱动智能制造工厂的工业互联与高效控制新范式

在工业4.0与智能制造浪潮的推动下,传统制造业正经历着从“机械驱动”向“数据驱动”的深刻转型。作为工业数据连接领域的领军者,明达技术凭借其自主研发的MR30分布式IO模块,以创新的技术架构与卓越的性能表现,为全球制造企业构建了…

IDEA远程调试weblogic(docker部署)

1、 进入 /weblogic/CVE-2017-10271 文件夹,修改其中的 docker-compose.yml 文件, 将 8453 端口打开 2、 docker-compose up -d 编译镜像并启动容器 docker exec -it 3d /bin/bash 命令进入容器,使用 vi 修改文件 /root/Oracle/Middl…

vue 主子表加校验问题

1.在table绑定的data中将数据源加上form&#xff0c;要将tabel包含在form表单中才行 <el-table :data"form.procurementPlanDevicesList" :row-class-name"rowProcurementPlanDevicesIndex"selection-change"handleProcurementPlanDevicesSelecti…

人工智能-音乐创作(变分自编码器(VAE)、生成对抗网络(GAN)和Transformer架构)

以下分别为你提供使用变分自编码器&#xff08;VAE&#xff09;、生成对抗网络&#xff08;GAN&#xff09;和Transformer架构进行音乐创作的代码示例。这些示例基于PyTorch框架&#xff0c;并使用了一些简单的音乐表示方法&#xff0c;实际应用中可能需要根据具体的音乐数据和…

A股level2高频数据分析20250205

A股level2高频数据分析20250205 通过Level2的逐笔成交与委托记录&#xff0c;这种高精度的毫秒级数据能够洞察诸多重要信息&#xff0c;包括庄家目的、误导性行为&#xff0c;使所有交易操作透明化。这对于分析高手的交易策略极为有益&#xff0c;对机器学习的研究也极具价值&…

(2024|Nature Medicine,生物医学 AI,BiomedGPT)面向多种生物医学任务的通用视觉-语言基础模型

BiomedGPT: A generalist vision–language foundation model for diverse biomedical tasks 目录 1. 摘要 2. 引言 3. 相关研究 3.1 基础模型与通用生物医学 AI 3.2 生物医学 AI 的局限性 3.3 BiomedGPT 的创新点 4. 方法 4.1 架构及表示 4.1.1 模型架构选择 4.1.2 …

51单片机看门狗系统

在 STC89C52 单片机中&#xff0c;看门狗控制寄存器的固定地址为 0xE1。此地址由芯片厂商在硬件设计时确定&#xff0c;但是它在头文件中并未给出&#xff0c;因此在使用看门狗系统时需要声明下这个特殊功能寄存器 sfr WDT_CONTR 0xE1; 本案将用一个小灯的工作状况来展示看门…