28 JavaScript学习: 代码规范

代码规范通常包括以下几个方面:

  • 变量和函数的命名规则
  • 空格,缩进,注释的使用规则。
  • 其他常用规范……
    在这里插入图片描述

变量名

在编写JavaScript代码时,遵守良好的变量命名规范是非常重要的,这可以增加代码的可读性和可维护性。以下是一些常见的变量命名规范:

  1. 使用有意义且描述性的名称:变量名应该能清楚地表达出变量所代表的含义。

  2. 遵循驼峰命名法:驼峰命名法分为小驼峰和大驼峰两种形式。小驼峰形式(也称为小写驼峰)首字母小写,后续每个单词首字母大写,例如:myVariableName。大驼峰形式(也称为帕斯卡命名法)每个单词的首字母都大写,例如:MyVariableName。

  3. 避免使用单个字符或者简写:使用具有描述性的名称,可以使你的代码更加容易理解和维护。

  4. 使用有意义的名词作为变量名:变量名应该能够清晰地表示变量所存储的数据类型或意图。

  5. 避免使用保留字:JavaScript有一些保留字,不能用作变量名,如if、for等。

  6. 使用恰当的命名约定:如果你正在编写团队项目,最好与团队成员共同制定并遵守一致的命名约定。

  7. 使用英文:尽量使用英文命名变量,这样可以增加代码的读写友好性,方便团队合作和代码的全球化。

选择一个有意义的、能够清楚表达变量含义的名称,并遵循一致的命名规范,将有助于提高你的代码的质量和可维护性。

空格与运算符

在JavaScript中,空格与运算符的使用是良好编码实践的一部分。以下是一些常见的规范:

  1. 在运算符周围添加空格:在二元运算符(如加号、减号、乘号、除号等)前后添加空格,以增加代码的可读性。例如:a + b

  2. 在逗号后添加空格:在逗号分隔的参数列表中,逗号后添加空格,以增加代码的清晰度。例如:func(a, b, c)

  3. 在冒号后添加空格:在对象字面量中的键值对中,冒号后添加空格,以增加代码的清晰度。例如:{ key: value }

  4. 函数声明时的空格:在函数声明时,在函数名和参数列表之间添加一个空格,以增加代码的可读性。例如:function foo() { }

  5. 在关键字前后添加空格:在关键字(如if、for、while等)前后添加空格,以增加代码的清晰度。例如:if (condition) { }

  6. 不要在行尾添加空格:避免在行尾添加多余的空格,以保持代码的整洁性。

代码缩进

在JavaScript中,代码缩进是一种良好的编码习惯和规范,它有助于增加代码的可读性和可维护性。以下是一些常见的代码缩进规范:

  1. 使用空格进行缩进:通常,每个缩进级别使用两个空格来进行缩进。这种缩进风格在JavaScript社区中很常见。

  2. 缩进控制流语句和代码块:例如if语句、for循环、函数定义等,应在其后另起一行,并缩进一个层级。

if (condition) {// code here
}for (let i = 0; i < 10; i++) {// code here
}function foo() {// code here
}
  1. 对象字面量的缩进:在对象字面量中的每一对键值对应该缩进一个层级。
const obj = {key1: value1,key2: value2,key3: value3
};
  1. 缩进函数内部的代码:在函数内部的代码应该在函数体开始大括号的下一行进行缩进。
function myFunction() {// code hereif (condition) {// code here}
}
  1. 不要混合使用空格和制表符(tab):为了保持一致性,在整个代码库中应该选择一种缩进方式,并确保所有人都使用相同的设置。

良好的代码缩进可以提高代码的可读性,同时也方便团队合作、代码维护和排错。选择一种缩进风格并严格遵守它,这将使你的代码更加整洁和易于理解。

语句规则

在JavaScript中,语句规则指的是代码中的语句(statements)的书写规范和使用方式。以下是一些常见的语句规则:

  1. 分号结束语句:在大多数情况下,每个语句都应该以分号(;)结束。这有助于明确代码的结尾,并防止出现意外的行为。
const variable = 1;
console.log(variable);
  1. 使用大括号定义代码块:当使用条件语句(如if、for等)或函数定义时,应该使用大括号({})来定义代码块,即使只有一条语句也应如此。这样可以避免潜在的错误和提高代码的可读性。
if (condition) {// code here
}for (let i = 0; i < 10; i++) {// code here
}function myFunction() {// code here
}
  1. 尽量避免使用隐式分号:JavaScript中存在自动插入分号的机制,但依赖于该机制可能导致一些不确定的行为。为了避免这种不确定性,最好在每个语句的结尾显式添加分号。

  2. 注意缩进:良好的缩进可以增加代码的可读性。通常建议使用2个空格或4个空格作为一个缩进级别,并在每个代码块内进行适当的缩进。

  3. 关键字和标识符的使用:关键字(如if、for、while等)在使用时应该与标识符(变量名、函数名等)有区分度。避免将标识符命名为关键字,以免引起冲突或混淆。

  4. 注释你的代码:在复杂的逻辑或不易理解的代码段上方添加注释是一种良好的实践,可以帮助他人理解你的代码。

对象规则

在JavaScript中,对象是一种复合数据类型,用于存储多个值(属性)的集合。以下是一些关于对象的常见规则:

  1. 对象字面量的使用: 可以使用对象字面量的方式创建对象,对象字面量是由花括号({})包围的零个或多个“键值对”组成,键值对之间使用逗号分隔。
const person = {name: 'Alice',age: 30,city: 'New York'
};
  1. 键名的要求: 对象的键名必须是字符串或符号(Symbol),如果不是字符串,则会自动转换为字符串。键名不符合标识符命名规则时,必须加引号。
const myObj = {"key1": 'value1',"key-with-dashes": 'value2','123': 'value3'
};
  1. 访问对象属性: 使用点号(.)或方括号([])来访问对象的属性。
console.log(person.name); // 输出 'Alice'
console.log(person['age']); // 输出 30
  1. 对象属性的增删改查:
    • 增加属性:直接为对象添加新的属性。
    • 删除属性:使用 delete 关键字删除对象的属性。
    • 修改属性:直接对属性进行赋值操作。
person.gender = 'female'; // 增加属性
delete person.city; // 删除属性
person.age = 31; // 修改属性
  1. 对象属性的遍历: 可以使用 for...in 循环或 Object.keys()Object.values()Object.entries() 方法来遍历对象的属性。
for (let key in person) {console.log(`${key}: ${person[key]}`);
}Object.keys(person).forEach(key => {console.log(`${key}: ${person[key]}`);
});
  1. 使用封装和继承: 在面向对象编程中,可以使用构造函数、类、原型等机制来实现对象的封装和继承,从而更好地管理和组织代码。

每行代码字符小于 80

在这里插入图片描述

明白,遵守这个规则可以使代码易于阅读和维护。在保持代码可读性的前提下,你可以使用以下几种方法来确保每行代码字符小于80:

  1. 换行:将较长的行分成多行,保持每行的长度不超过80个字符,可以使用 \ 符号或者空行来换行。
const longString = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut aliquet tortor vel magna semper feugiat. Donec interdum dolor nec lectus rutrum, sed luctus eros bibendum. Cras pellentesque consequat risus at bibendum.';
// 换行示例
const anotherLongString ='Suspendisse eleifend dictum dolor sed auctor. Vestibulum tristique vestibulum elit non ultrices. Sed pretium mi ut libero laoreet, vitae porttitor purus euismod. Suspendisse sed porta enim, vel ornare lorem.';
  1. 合并变量和字符串:在需要拼接字符串时,将字符串和变量拼接为一行,可以使代码更加简洁。
const name = 'Alice';
// 合并变量和字符串示例
console.log(`Hello, ${name}!`);
  1. 减少函数参数:减少函数需要的参数数量,可以在代码中减少较长的代码行,优化代码结构。
// 减少函数参数示例
function calculateArea(length, width) {return length * width;
}
calculateArea(10, 20);

HTML 载入外部 JavaScript 文件

当然,以下是一个简单的示例,演示如何使用 JavaScript 访问 HTML 元素:

假设你有一个 HTML 文件 index.html 和一个 JavaScript 文件 script.js。在 index.html 中,你有一个 <p> 元素和一个按钮,点击按钮时会触发 JavaScript 函数来修改 <p> 元素的内容。在 script.js 中,你将编写 JavaScript 代码来实现这一功能。

index.html:

<!DOCTYPE html>
<html><head><title>JavaScript Demo</title></head><body><h1>Welcome to my JavaScript Demo</h1><p id="demo">This is a paragraph.</p><button onclick="changeText()">Change Text</button><!-- 载入外部 JavaScript 文件 --><script src="script.js"></script></body>
</html>

script.js:

function changeText() {// 使用 document.getElementById() 获取到 <p> 元素var paragraph = document.getElementById("demo");// 修改 <p> 元素的文本内容paragraph.innerHTML = "Text changed!";
}

在这个示例中,当用户点击按钮时,changeText() 函数被调用。这个函数首先使用 document.getElementById() 方法获取到 id 为 “demo” 的 <p> 元素,然后通过修改其 innerHTML 属性来改变文本内容。

确保 script.js 文件与 index.html 文件在同一目录下,并在 HTML 文件中正确地指定了 JavaScript 文件的路径。

使用 JavaScript 访问 HTML 元素

使用 JavaScript 访问 HTML 元素是一种常见的操作,可以通过多种方式实现。在你提供的示例中,使用了 document.getElementById() 方法来获取 <p> 元素,并修改了其内容。

除了 document.getElementById() 方法外,还有其他一些方法可以获取 HTML 元素,比如 document.querySelector() 方法可以根据 CSS 选择器获取元素,而 document.getElementsByClassName() 方法可以根据类名获取元素。根据具体的需求和情况选择合适的方法。

另外,修改 HTML 元素的属性和内容时,可以通过修改元素的属性值或者内部HTML内容来实现。像你的示例中一样,可以直接修改 innerHTML 属性来改变元素的内容,也可以通过修改 innerText 或者 textContent 属性来改变元素的文本内容。

要确保 JavaScript 文件正确地与 HTML 文件链接,并且在需要的时候被正确加载。可以通过在 HTML 文件中使用 <script> 标签引入 JavaScript 文件,也可以通过外部链接的方式引入外部 JavaScript 文件。

文件扩展名

  • HTML 文件后缀可以是 .html (或 .htm)。

  • CSS 文件后缀是 .css 。

  • JavaScript 文件后缀是 .js 。

大小写敏感

大多 Web 服务器 (Apache, Unix) 对大小写敏感: london.jpg 不能通过 London.jpg 访问。

其他 Web 服务器 (Microsoft, IIS) 对大小写不敏感: london.jpg 可以通过 London.jpg 或 london.jpg 访问。
建议统一小写。

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS ------ 内存五大分区

1&#xff0c;内存的概念&#xff1a; 虚拟内存&#xff08;Virtual Memory&#xff09;&#xff1a;虚拟内存是操作系统提供的一种机制&#xff0c;它使得应用程序能够访问超出物理内存限制的内存空间。虚拟内存将应用程序的内存地址空间分割成固定大小的页面&#xff08;Pag…

路由策略与路由控制

1.路由控制工具 匹配工具1&#xff1a;访问控制列表 &#xff08;1&#xff09;通配符 当进行IP地址匹配的时候&#xff0c;后面会跟着32位掩码位&#xff0c;这32位称为通配符。 通配符&#xff0c;也是点分十进制格式&#xff0c;换算成二进制后&#xff0c;“0”表示“匹配…

【软考】模拟考卷错题本2024-05-07

1 项目路径 这里的图没有加载出来&#xff0c;没u哦i关系了。其实主要是的算出最长的路径中包含那些元素即可。这里是蒙圈了&#xff0c;没有考虑到还有更长的。要顾头也顾尾。 2 算法分析-贪心 该问题主要考核的是算法设计策略来达到目标的方式。主要的设计策略有&#xff1a;…

Linux变量的认识及环境变量配置详解

文章目录 1、变量的划分2、局部变量3、全局变量4、环境变量4.1、概述4.2、配置临时环境变量4.3、配置永久环境变量4.3.1、用户级配置文件1&#xff09;配置方法一&#xff1a;~/.bashrc文件2&#xff09;配置方法二&#xff1a;~/.profile文件3&#xff09;配置方法三&#xff…

CTF-reverse二维四向迷宫路径求解

二维四向迷宫是一个re中的常考点&#xff0c;说不上难&#xff0c;但也不简单&#xff0c;本篇记录了常规的二维四向迷宫解题套路以及帮助快速解题的脚本 可能你看我的教程会觉得十分繁琐&#xff0c;但实际只要你用了一次熟练之后&#xff0c;基本都是拿到迷宫就一题一分钟解决…

jmeter控制器讲解

1&#xff0c;随机顺序控制器和随机控制器的区别&#xff1a;随机顺序控制器下所有的接口都会执行&#xff0c;只是执行顺序是随机的&#xff0c;随机控制器下所有的接口中随机执行一个接口&#xff0c;其余接口不执行。

【跨境商家必读】TikTok Shop商城运营全指南

随着社交媒体和电子商务之间界限的日益模糊&#xff0c;一种全新的购物平台——TikTok商城&#xff0c;正在迅速成为全球跨境商家们关注的焦点。在这个竞争激烈的TikTok跨境电商领域中&#xff0c;了解如何有效利用TikTok Shop的各项功能&#xff0c;理解其独特的运营模式&…

Linux进程——Linux进程间切换与命令行参数

前言&#xff1a;在上一篇了解完进程状态后&#xff0c;我们简单了解了进程优先级&#xff0c;然后遗留了一点内容&#xff0c;本篇我们就来研究进程间的切换&#xff0c;来理解上篇提到的并发。如果对进程优先级还有没理解的地方可以先阅读&#xff1a; Linux进程优先级 本篇…

Gmail邮箱怎么注册?2024年完整指南(包含跳过手机号验证)

一、为什么要注册Gmail邮箱&#xff1f; 全球通用性&#xff1a;Gmail是一个全球性的邮件服务平台&#xff0c;被广泛认可和信赖。因为客户对于Gmail的接受度高&#xff0c;无需担心邮件被自动标记为垃圾邮件。 整合营销工具&#xff1a;通过Gmail账号&#xff0c;你可以轻松…

C++之大数运算

溪云初起日沉阁 山雨欲来风满楼 契子✨ 我们知道数据类型皆有范围&#xff0c;一旦超出了这个范围就会造成溢出问题 今天说说我们常见的数据类型范围&#xff1a; 我们平时写代码也会遇到数据类型范围溢出问题&#xff1a; 比如 ~ 我们之前写的学生管理系统在用 int类型 填写…

stack的使用

1.栈的定义 我们可以看到模板参数里面有一个容器适配器 &#xff0c;什么是适配器&#xff1f;比如充电器就叫做电源适配器&#xff0c;用在做转换&#xff0c;对电压进行相关的转换适配我们的设备。栈&#xff0c;队列不是自己直接管理数据&#xff0c;是让其他容器管理数据&a…

java-函数式编程-语法

目录 1、函数表现形式 分类 lambda表达式 参数类型可以全写&#xff0c;也可以全不写&#xff0c;但不能一部分写&#xff0c;一部分不写lambda 的省略策略&#xff1a;凡是可推导&#xff0c;都可以省略 方法引用 练习-判断语法正确性 练习-写出与方法引用等价的lambda表达式…

新火种AI|马斯克聘用OpenAI泄密者,他们的梁子着实越结越深...

作者&#xff1a;小岩 编辑&#xff1a;彩云 就在最近&#xff0c;昔日就职于OpenAI的工程师Pavel Izmailov正式加入了马斯克的AI团队&#xff0c;他还在自己的推特上大张旗鼓的做着宣传&#xff1a;研究院xai。 AI工程师的跳槽本不值得惊讶&#xff0c;但Pavel的跳槽却在行…

LSTM神经网络 vs Transformer在量化中的应用

LSTM,全称Long Short-Term Memory,是一种特殊的递归神经网络。它通过巧妙的"门"结构,可以有效地捕捉时间序列数据中的长期依赖关系。这一特点,使得LSTM在处理股价这种具有时间序列特性的数据时,展现出了非凡的潜力。 这种特殊的递归神经网络 与一般的前馈神经网络不…

C++语法|如何写出高效的C++代码(一)|对象使用过程中背后调用了哪些方法(构造和析构过程)?

文章目录 再探拷贝构造函数和重载复制运算符实例化新对象和赋值操作强转为类类型指针和引用时临时对象的构造和析构过程 考考你问题答案 再探拷贝构造函数和重载复制运算符 实例化新对象和赋值操作 首先我们写一个类&#xff0c;实现它的拷贝构造并重载赋值运算符。 class T…

盘点四种计算数组中元素值为1的个数的方法

目录 一、引言 二、方法一&#xff1a;基础循环遍历 三、方法二&#xff1a;列表推导式 四、方法三&#xff1a;使用内置函数sum和生成器表达式 五、方法四&#xff1a;使用NumPy库 六、性能比较 七、性能结果分析与讨论 八、最佳实践 九、总结 一、引言 在编程和数…

银河麒麟QT项目打包详细教程

银河麒麟QT项目打包详细教程 一、QT项目打包 下载linuxdeployqt&#xff0c;下载地址&#xff1a;https://github.com/probonopd/linuxdeployqt/releases 安装Linuxdeployqt 2.1 为了安装方便&#xff0c;将下载下来的文件名称改短些 mv linuxdeployqt-6-x86_64.AppImage lin…

92、动态规划-最小路径和

思路&#xff1a; 还是一样&#xff0c;先使用递归来接&#xff0c;无非是向右和向下&#xff0c;然后得到两种方式进行比较&#xff0c;代码如下&#xff1a; public int minPathSum(int[][] grid) {return calculate(grid, 0, 0);}private int calculate(int[][] grid, int …

射频无源器件之巴伦

一. 巴伦的作用 Balun,balanced-unbalanced的缩写,即平衡-不平衡转换器,是一种三端口无源器件,其本质是通过电感线圈的相互耦合实现的信号转换。用于平衡信号(差分信号,即振幅相等、相位相差180 的两个信号)与非平衡信号(单端信号)的相互转换。 Balun是高频电路重要器…

Vmware虚拟机瘦身及Samba服务不可用问题解决

虚拟机磁盘空间膨胀是一个令人头疼的问题&#xff0c;特别是对许多搞开发的小伙伴。无论是做后台服务、嵌入式还是Android开发&#xff0c;都面临着这个难题。首先&#xff0c;操作系统本身就已占用不少空间&#xff0c;更新安装包&#xff0c;再下载一些开源软件&#xff0c;剩…