JavaScript命名约定的最佳实践指南

JavaScript命名约定的最佳实践指南

目录

前言

1. 变量的命名约定

2. 布尔值的命名约定

3. 函数的命名约定

4. 常量的命名约定

5. 类的命名约定

6. 组件的命名规则

7. 方法的命名约定

8. 私有函数的命名约定

9. 全局变量的命名约定

10. 文件名的命名约定

附:正确案例

总结

前言

在开发过程中,遵循标准的命名约定可以提高代码的可读性并且代码更容易理解。下面就来看看 JavaScript 中命名约定的最佳实践。

1. 变量的命名约定

JavaScript 变量名称是区分大小写的,大写和小写字母是不同的。比如:

let DogName = 'Scooby-Doo'; let dogName = 'Droopy'; let DOGNAME = 'Odie'; console.log(DogName); // "Scooby-Doo" console.log(dogName); // "Droopy" console.log(DOGNAME); // "Odie"

但是,最推荐的声明 JavaScript 变量的方法是使用驼峰式变量名。我们可以对JavaScript 所有类型的变量使用驼峰式命名约定,这样就不会相同命名的变量。

// bad let dogname = 'Droopy'; // bad let dog_name = 'Droopy'; // bad let DOGNAME = 'Droopy'; // bad let DOG_NAME = 'Droopy'; // good let dogName = 'Droopy';

变量的名称应该是不言自明的,并描述了储存的值。例如,如果需要一个变量来储存狗的名字,应该使用 dogName 而不是 Name,因为 dogNam 更有意义:

// bad let d = 'Droopy'; // bad let name = 'Droopy'; // good let dogName = 'Droopy'; 2. 布尔值的命名约定

当定义布尔类型的变量时,应该使用is或者has作为变量的前缀。例如,如果需要一个变量来检查狗是否有主任,应该使用 hasOwner 来最为变量名:

// bad let bark = false; // good let isBark = false; // bad let ideal = true; // good let areIdeal = true; // bad let owner = true; // good let hasOwner = true; 3. 函数的命名约定

JavaScript 中函数的名称也是区分大小写的。因为在声明函数时,推荐使用驼峰式方法来命名函数。 ​

除此之外,推荐使用描述性名词和动词来作为前缀。例如,如果声明一个函数来获取名称,则函数名字应该是 getName:

// bad function name(dogName, ownerName) { return '${dogName} ${ownerName}'; } // good function getName(dogName, ownerName) { return '${dogName} ${ownerName}'; } 4. 常量的命名约定

JavaScript 中的常量和变量是一样的,都区分大小写,在定义常量时,推荐使用大写,因为它们是不变的变量。

const LEG = 4; const TAIL = 1; const MOVABLE = LEG + TAIL;

如果变量声明名称中包含多个单词,就应该使用 UPPER_SNAKE_CASE。

const DAYS_UNTIL_TOMORROW = 1; 5. 类的命名约定

JavaScript 中类的命名约定规则与函数非常相似,推荐使用描述性的名称来描述类的功能。 ​

函数名和类名之间的主要区别在于类名要使用大写开头:

class DogCartoon { constructor(dogName, ownerName) { this.dogName = dogName; this.ownerName = ownerName; } } const cartoon = new DogCartoon('Scooby-Doo', 'Shaggy'); 6. 组件的命名规则

JavaScript 组件广泛应用于React、Vue等前端框架中。组件的命名建议与类保持一致,使用开头大写的驼峰式命名法:

// bad function dogCartoon(roles) { return ( <div> <span> Dog Name: { roles.dogName } </span> <span> Owner Name: { roles.ownerName } </span> </div> ); } // good function DogCartoon(roles) { return ( <div> <span> Dog Name: { roles.dogName } </span> <span> Owner Name: { roles.ownerName } </span> </div> ); }

由于组件的命名开头字母是大写,因此在使用时,就很容易和HTML、属性值等区分开来:

<div> <DogCartoon roles={{ dogName: 'Scooby-Doo', ownerName: 'Shaggy' }} /> </div> 7. 方法的命名约定

这里说的方法指的是类中方法,在 JavaScript 中,类的方法和函数的结构是非常类似的,因此,命名约定规则也是一样的。 ​

推荐需要使用驼峰式方法来声明 JavaScript 方法,并使用动词作为前缀,使方法名称更有意义:

class DogCartoon { constructor(dogName, ownerName) { this.dogName = dogName; this.ownerName = ownerName; } getName() { return '${this.dogName} ${this.ownerName}'; } } const cartoon= new DogCartoon('Scooby-Doo', 'Shaggy'); console.log(cartoon.getName()); // "Scooby-Doo Shaggy" 8. 私有函数的命名约定

下划线 (_) 在 MySQL 和 PHP 等语言中广泛用于定义变量、函数和方法。但在 JavaScript 中,下划线用于表示私有变量或函数。 ​

例如,有一个私有函数名 toonName,则可以通过添加下划线作为前缀 (_toonName) 来将其表示为私有函数。

class DogCartoon { constructor(dogName, ownerName) { this.dogName = dogName; this.ownerName = ownerName; this.name = _toonName(dogName, ownerName); } _toonName(dogName, ownerName) { return `${dogName} ${ownerName}`; } } const cartoon = new DodCartoon('Scooby-Doo', 'Shaggy'); // good const name = cartoon.name; console.log(name); // "Scooby-Doo Shaggy" // bad name =cartoon._toonName(cartoon.dogName, cartoon.ownerName); console.log(name); // "Scooby-Doo Shaggy" 9. 全局变量的命名约定

对于 JavaScript 全局变量,没有特定的命名标准。建议对可变全局变量使用驼峰式大小写的方式,对不可变全局对象使用大写。

10. 文件名的命名约定

大多数 Web 服务器(Apache、Unix)在处理文件时都区分大小写。例如,flower.webp 和 Flower.webp 是不一样的。 ​

但是,如果从不区分大小写的服务器切换到区分大小写的服务器,即使是一个小错误也可能导致网站崩溃。 ​

因此,尽管它们是支持区分大小写的,建议在所有服务器中还是使用小写来命名文件。 ​

附:正确案例

同时应用所有规则,我们得到如下函数:

function getAccountsTotalBalance(accounts) { let totalBalance = 0; for (let accountIndex = 0; accountIndex < accounts.length; accountIndex++) { totalBalance += accounts[accountIndex].balance; } return totalBalance; }

虽然accountIndex与i可能存在争议,但函数的其余部分应该更清楚。getAccountsTotalBalance完全传达了函数的意图,前缀get表示它不会导致任何突变。为了读者的利益,代码作者投入更多的精力是值得的。6个月后,当他们维护代码时,你未来的自己会感激他们所做的额外工作。

如果担心行长度,可以考虑使用Prettier之类的工具来自动格式化代码。

总结

到此这篇关于JavaScript命名约定的文章就介绍到这了,更多相关JavaScript命名约定内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    Javascript中 toFixed四舍六入方法

    Javascript中 toFixed四舍六入方法,浮点,手动,银行家,进,javascript中toFixed使用的是银行家舍入规则。银行家舍入:所谓银行家舍入法,其实

    javascript怎么隐藏元素值

    javascript怎么隐藏元素值,隐藏,元素,设置,显示,位置,属性,javascript隐藏元素值的方法:1、设置元素style属性中的display,语句如“t.style.displ

    javascript对象怎么转换成字符串

    javascript对象怎么转换成字符串,字符串,参数,对象,序列化,属性,数组,在javascript中可以使用“JSON.stringify()”方法将对象转换成字符串,其语

    javascript怎么将字母转为小写

    javascript怎么将字母转为小写,方法,字符串,函数,语法,主机,语言,javascript字母转为小写的方法:1、使用toLowerCase()函数,语法“string.toLower

    javascript怎么实现二维码

    javascript怎么实现二维码,二维码,二维码生成,下载,插件,扫描二维码,操作,javascript实现二维码的方法:1、下载qrcodejs插件;2、使用qrcode实现二

    javascript如何获取字符串长度

    javascript如何获取字符串长度,字符,获取,属性,字符串长度,字符串,输出,javascript获取字符串长度的方法:1、使用length属性按字符来获取字符串

    javascript怎么类型转换

    javascript怎么类型转换,方法,字符串,转换,转换成,类型,数字,方法:1、使用“+”运算符自动进行转换。2、使用JS内置的函数进行转换,例toString()

    javascript如何去掉空格

    javascript如何去掉空格,去除,替换,方法,删除,文本,字符串,javascript去掉空格的方法:1、通过“str.replace(/\s+/g,"");”去除所有空格;2、通

    javascript中定义数组的方法有哪些

    javascript中定义数组的方法有哪些,数组,数组名,列表,元素,语句,方法,javascript中定义数组的方法:1、使用“var 数组名=[值列表]”语句;2、使用

    Javascript怎么检查对象是否为空

    Javascript怎么检查对象是否为空,对象,方法,字符串,数组,检查,语句,方法:1、将对象转化为json字符串,判断该字符串是否为“{}”;2、使用“$.isEmpt

    javascript怎么关闭当前窗口

    javascript怎么关闭当前窗口,窗口,脚本,本页,教程,提示,关闭窗口,javascript中可以利用window对象的opener属性、open()和close()方法来关闭当