JavaScript 代码规范

简介: 所有的 JavaScript 项目适用同一种规范 ## JavaScript 代码规范 代码规范通常包括以下几个方面: 变量和函数的命名规则 空格,缩进,注释的使用规则 其他常用规范…… 规范的代码可以更易于阅读与维护 代码规范一般在开发前规定,可以跟你的团

所有的 JavaScript 项目适用同一种规范

设计原则:

1.原子思想:即每个function就做一件事;

2.归纳思想:将同一类的操作,全部整合到一起;

3.方便维护:可以便于后来人进行快速维护;

4.方便拓展:即可以根据每个不同的项目进行不同的更改;

5.通用前端设计模式:一些前端可以通用的设计模式

6.注意写好注释,将注释写的具体点;

JavaScript 代码规范

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

变量和函数的命名规则

空格,缩进,注释的使用规则

其他常用规范……

规范的代码可以更易于阅读与维护

代码规范一般在开发前规定,可以跟你的团队成员来协商设置

变量名

变量名推荐使用驼峰法来命名(camelCase):

firstName = "John";
lastName = "Doe";

前缀规范:

每个局部变量都需要有一个类型前缀,按照类型可以分为:

s:表示字符串。例如:sName,sHtml;

n:表示数字。例如:nPage,nTotal;

b:表示逻辑。例如:bChecked,bHasLogin;

a:表示数组。例如:aList,aGroup;

r:表示正则表达式。例如:rDomain,rEmail;

f:表示函数。例如:fGetHtml,fInit;

o:表示以上未涉及到的其他对象,例如:oButton,oDate;

g:表示全局变量,例如:gUserName,gLoginTime

空格与运算符

通常运算符 ( = + - * / ) 前后需要添加空格:

var x = y + z;
var values = ["Volvo", "Saab", "Fiat"];

代码缩进与换行

缩进

在同一系统中应采用同一种缩进标准,本文提倡缩进大小为4个空格。各编译器对Tab键所代替的空白大小定义不同。建议在设置开发环境时,将编辑器里的Tab快捷键重新设置成4个空格。多数编译器提供了此功能。否则建议按4次空格来进行缩进。

换行

在以下位置必须换行:

每个独立语句结束后;

if、else、catch、finally、while等关键字前;

运算符处换行时,运算符必须在新行的行首

对于因为单行长度超过限制时产生的换行,参考行长度中的策略进行分隔

1).字符串过长截断

每行代码应小于80个字符。若代码较长应尽量换行,换行应选择在操作符和标点符号之后,最好是在分号“;”或逗号“,”之后。下一行代码相对上一行缩进4个空格。这样可以有效防止复制粘贴引起的代码缺失等错误并增强可读性

按一定长度截断字符串,并使用+运算符进行连接。分隔字符串尽量按语义进行,如不要在一个完整的名词中间断开。特别的,对于HTML片段的拼接,通过缩进,保持和HTML相同的结构:

2).三元运算符过长

三元运算符由3部分组成,因此其换行应当根据每个部分的长度不同

3).过长的逻辑条件组合

当因为较复杂的逻辑条件组合导致80个字符无法满足需求时,应当将每个条件独立一行,逻辑运算符放置在行首进行分隔,或将部分逻辑按逻辑组合进行分隔。最终将右括号)与左大括号{放在独立一行,保证与if内语句块能容易视觉辨识。

4).过长的JSON和数组

如果对象属性较多导致每个属性一行占用空间过大,可以按语义或逻辑进行分组的组织

5).return语句

return如果用表达式的执行作为返回值,请把表达式和 return 放在同一行中,以免换行符被误解析为语句的结束而引起返回错误。return 关键字后若没有返回表达式,则返回 undefined。构造器的默认返回值为 this。

语句规则

简单语句的通用规则:

一条语句通常以分号作为结束符

复杂语句的通用规则:

将左花括号放在第一行的结尾

左花括号前添加一空格

将右花括号独立放在一行

不要以分号结束一个复杂的声明

对象规则

对象定义的规则:

将左花括号与类名放在同一行。

冒号与属性值间有个空格。

字符串使用双引号,数字不需要。

最后一个属性-值对后面不要添加逗号。

将右花括号独立放在一行,并以分号作为结束符号

var person = {
    firstName: "John",
    lastName: "Doe",
    eyeColor: "blue"
};

短的对象代码可以直接写成一行

命名规则

一般很多代码语言的命名规则都是类似的,例如:

变量和函数为驼峰法( camelCase)

全局变量为大写 (UPPERCASE )

常量 (如 PI) 为大写 (UPPERCASE )

变量命名你是否使用这几种规则: hyp-hens, camelCase, 或under_scores ?

HTML 和 CSS 的横杠(-)字符:

HTML5 属性可以以 data- (如:data-quantity, data-price) 作为前缀。

CSS 使用 - 来连接属性名 (font-size)。

注意:- 通常在 JavaScript 中被认为是减法,所以不允许使用。

下划线:

很多程序员比较喜欢使用下划线(如:date_of_birth), 特别是在 SQL 数据库中。

PHP 语言通常都使用下划线。

帕斯卡拼写法(PascalCase):

帕斯卡拼写法(PascalCase) 在 C 语言中语言较多。

驼峰法:

JavaScript 中通常推荐使用驼峰法,jQuery 及其他 JavaScript 库都使用驼峰法。

注意:变量名不要以 $ 作为开始标记,会与很多 JavaScript 库冲突

HTML 载入外部 JavaScript 文件

使用简洁的格式载入 JavaScript 文件 ( type 属性不是必须的):

<script src="myscript.js">

HTML 与 JavaScript 尽量使用相同的命名规则

文件扩展名

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

CSS 文件后缀是 .css 。

JavaScript 文件后缀是 .js

使用小写文件名

大多 Web 服务器 (Apache, Unix) 对大小写敏感: london.jpg 不能通过 London.jpg 访问。你必须保持统一的风格,我们建议统一使用小写的文件名

javascript:void(0) 含义

我们经常会使用到 javascript:void(0) 这样的代码,那么在 JavaScript 中 javascript:void(0) 代表的是什么意思呢?

javascript:void(0) 中最关键的是 void 关键字,void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值

当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果

href="#"与href="javascript:void(0)"的区别

#包含了一个位置信息,默认的锚是#top 也就是网页的上端。而javascript:void(0), 仅仅表示一个死链接。在页面很长的时候会使用 # 来定位页面的具体位置,格式为:# + id。

如果你要定义一个死链接请使用 javascript:void(0)

for循环

我们习惯将for循环写成如下形式:

for (var i = 0; i < myarray.length; i++) {
    //logic
}

看似没有问题,但是如果myarray是读取的DOM的节点,那么每一次循环都要去DOM里选取节点再做判断,非常影响性能。可能数量不大感觉不错来,多了就非常严重了。所以,for循环判断条件里尽量不要使用涉及到DOM操作的动作。优化如下:

for (var i = 0, max = myarray.length; i < max; i++) {
    // logic
}

另外一个就是使用for-in循环对象的话会读取对象从原型链里的属性,如果这不是希望的,那么可以用一个判断hasOwnProperty(i)去掉它

用“===”取代“==”

前者是严格判断,后者会提前进行隐式的类型转换。

不使用eval()

统一缩进大小(无论用tab或者2个或者4个空格,团队统一即可),任何用花括号括起来并换行的都进行缩进。

花括号{}

for循环或者if判断等,即使只有一行,也要换行并用{}括起来。

空格

任何“;”后空一格、for循环中初始化“,”后空一格、数组中","后空一格、对象中“:”后空一格。函数参数里“,”后空一格、函数声明中花括号前空一格、函数表达式中括号前后各空一格。所有的操作符前后都跟一个空格

尽量采用局部变量,统一采用闭包的立即执行的方式,不要污染全局变量

尽量采用局部变量

如:  $('.div1').html('');  $('.div2').html('');  
可以写成: $('.div1,.div2').html('');  

如:  $('.div1').css('color','red');  $('.div1').addClass('active');  

可以写成: $('.div1').css('color','red').addClass('active');

不要使用eval()函数

原因:1),性能差;2),不能打断点调试;3),容易受到攻击;4),可读性差;5),优化概率低;

避免with()语句

缺点:1),运行缓慢;2),会创建自己的作用域,因为会增加代码块中执行的作用域的长度;3),难以优化;

目录
相关文章
|
14天前
|
消息中间件 JavaScript 中间件
函数计算产品使用问题之WebIDE编写的Node.js代码是否会自动进行打包部署
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
16天前
|
JavaScript 前端开发 编译器
解锁JavaScript模块化编程新纪元:从CommonJS的基石到ES Modules的飞跃,探索代码组织的艺术与科学
【8月更文挑战第27天】随着Web应用复杂度的提升,JavaScript模块化编程变得至关重要,它能有效降低代码耦合度并提高项目可维护性及扩展性。从CommonJS到ES Modules,模块化标准经历了显著的发展。CommonJS最初专为服务器端设计,通过`require()`同步加载模块。而ES Modules作为官方标准,支持异步加载,更适合浏览器环境,并且能够进行静态分析以优化性能。这两种标准各有特色,但ES Modules凭借其更广泛的跨平台兼容性和现代语法逐渐成为主流。这一演进不仅标志着JavaScript模块化的成熟,也反映了整个JavaScript生态系统的不断完善。
33 3
|
3天前
|
移动开发 JavaScript 安全
总有一款适合您分享78个JS相册代码
本文分享了78款JS相册代码,包括3D相册旋转木马、图片悬浮效果、倾斜图片幻灯片切换等特效,适用于各种图片展示场景。无论您需要哪种样式,都能在这里找到满意的解决方案。快来挑选吧!参考链接:[点击这里](https://www.vipwb.com/sitemap.xml)。
20 4
|
4天前
|
JavaScript
分享一款520表白节JS代码
今天给大家分享一款JS表白源码 js会随 随机颜色心形跟随鼠标互动520表白节女神表白利器! 修改的话就搜索:LOVEh 就能找到这个英文了。
5 0
分享一款520表白节JS代码
|
11天前
|
JSON JavaScript 前端开发
如何使用代码注释:关于JavaScript与TypeScript
TSDoc是一种标准化TypeScript代码文档注释的规范,使不同工具能无干扰地提取内容。它包括多种标记,如@alpha、@beta等发布阶段标记;@decorator、@deprecated等功能标记;@defaultValue、@eventProperty等描述标记;@example、@experimental等示例与实验性标记;@inheritDoc、@internal等引用与内部标记;@label、@link等链接标记;@override、@sealed等修饰符标记;以及@packageDocumentation、@param、
23 5
|
13天前
|
JavaScript 前端开发 UED
JavaScript代码技巧大分享,在数组中去重元素
本文介绍了一系列实用的JavaScript函数,包括将内容复制到剪贴板、获取鼠标选中内容、打乱数组顺序、颜色值转换(RGBA与十六进制)、计算平均值、判断奇偶数、数组去重、检查空对象、反转字符串、计算日期间隔、首字母大写、生成随机字符串和随机数等,帮助提升网站的用户体验和功能丰富性。
19 4
|
13天前
|
JavaScript 前端开发 测试技术
如何写高质量的JavaScript代码
在现代Web开发中,JavaScript扮演着至关重要的角色。本文介绍了提升JavaScript代码质量的关键技巧:采用语义化命名增强代码可读性;通过模块化设计提升代码的可维护性和复用性;利用恰当的注释与文档说明代码功能;合理管理全局变量避免命名冲突;实施有效的异常处理增加程序稳定性;并借助工具和框架提高开发效率和代码质量。这些实践共同助力打造高效、可维护的Web应用。代码示例和效果参见相关链接。
17 3
|
13天前
|
JavaScript 前端开发 iOS开发
学习强大的JavaScript一行代码,能够节省你的时间和代码量
这段内容介绍了25个实用的JavaScript一行代码技巧,涵盖复制内容到剪贴板、打乱数组、颜色值转换、计算平均值、检查数字奇偶性、数组去重、对象为空检测、字符串反转、日期计算、首字母大写、生成随机字符串、四舍五入、清除Cookie、检测暗黑模式等,帮助开发者提高效率并简化代码。
16 2
|
15天前
|
JSON JavaScript 前端开发
Android调用Vue中的JavaScript代码
Android调用Vue中的JavaScript代码
14 3
|
13天前
|
存储 JavaScript 前端开发
JavaScript代码是怎么拼写的,高中开始
这段代码集合提供了多种实用的 JavaScript 功能,包括获取浏览器 Cookie 值、RGB 转十六进制、复制文本到剪贴板、检查日期有效性、找出一年中的某一天、字符串首字母大写、计算两天之间的天数差、清除所有 Cookie、生成随机十六进制颜色、数组去重、从 URL 获取查询参数、确认奇偶数、求平均值、回到页面顶部、翻转字符串、检查数组是否为空、获取用户选定的文本、打乱数组顺序以及检测用户是否处于暗模式。这些功能可以帮助开发者快速实现常用操作。
39 1