JavaScript 代码优化和部署——“可维护性”的注意要点

蚀刻
• 阅读 1747

代码约定

可读性

以下地方需要进行注释:

  • 函数和方法:注释参数代表什么,是否有返回值;

  • 大段代码:描述任务的注释;

  • 复杂的算法;

  • Hack

变量和函数命名

  • 变量用名词;

  • 函数名用动词开头:getName()等;

    • 返回布尔值类型的函数用isEnable()等;

  • 合乎逻辑不用担心太长;

变量类型透明化

方法一:初始化,如下:()推荐)

var isFound = false; //boolean
var name = ""; //String
var num = 0; //Number
var person = null; //Object

方法二:匈牙利标记法

var bIsFound; //boolean
var sName; //String
var nNum; //Number
var oPerson; //Object

方法三:使用类型注释

var bIsFound /*boolean*/ = false;
var sName /*string*/ = "";
var nNum /*number*/ = 0;
var oPerson /*object*/ = null;

松散耦合

HTML/JavaScript

应该通过引用外部文件和使用DOM附加行为来包含js代码

CSS/JavaScript

应该通过动态更改样式的类(className)而非特定样式来实现

编程习惯

尊重对象所有权

不要修改和编辑不属于你的对象,以及js原生类型对象

避免全局量

尽量避免全局变量和函数:

var name = "";
function setName(value) {
    name = value;
}
function sayName() {
    console.log(name);
}

上面的代码应该包含在一个对象中:

var setPersonName = {
    name: "",
    setName: function (value) {
        this.name = value;
    },
    sayName: function () {
        console.log(this.name);
    }
};
setPersonName.setName("Oli");
setPersonName.sayName(); //Oli

使用命名空间

使用多个命名空间,其中的内容互不干扰:

//全局对象
var Wrox = {};
//一个命名空间
Wrox.ProAjax = {};
Wrox.ProAjax.EventUtil = {};
Wrox.ProAjax.CookieUtil = {};
//另一个命名空间
Wrox.ProJS = {};
Wrox.ProJS.EventUtil = {};
Wrox.ProJS.CookieUtil = {};

避免与null比较

当看到了与null比较的代码,应该用以下技术替换:

  • 引用类型,用instanceof等;

  • 基本类型,用typeof等;

使用常量

(略)

点赞
收藏
评论区
推荐文章
陈发良 陈发良
5年前
总结:常用js方法
javascript函数注释/获取页面缓存@methodgetSession函数名@param参数名字符串类型,需要获取的key名@return变量名对象类型/img.onload定义和用法onload事件在图片加载完成后立即执行。判断设备constuserAgentnavigator
小嫌 小嫌
4年前
Javascript中的变量提升
定义JavaScript中奇怪的一点是你可以在变量和函数声明之前使用它们。就好像是变量声明和函数声明被提升了代码的顶部一样。sayHi()//Hithere!functionsayHi()console.log('Hithere!')name'JohnDoe'console.log(name)//JohnDoevarn
Wesley13 Wesley13
4年前
SASS指南针
/配置sass用gulp自动编译sass变量计算功能嵌套注释代码重用继承Mixin颜色函数插入文件高级用法条件语句循环语句自定义函数/一、配置sass用gulp自动编译sassSASS是Ruby语言写的,必须安装Ruby,再安装SASS,基于g
菜园前端 菜园前端
2年前
为你解惑JS作用域和作用域链知识
原文链接:变量作用域一个变量的作用域(scope)是程序源代码中定义这个变量的区域。全局变量拥有全局作用域,在JavaScript代码中的任何地方都是可以访问的。然而在函数内声明的变量只能在函数体内访问,它们是局部变量,作用域是局部性的。函数参数也是局部变
Jacquelyn38 Jacquelyn38
4年前
JavaScript预解析处理过程原来是这回事
讲解一般来说,Javascript代码的执行包括两个过程:预解析处理过程和逐行解读过程。在代码逐行解读前,Javasript引擎需要进行代码的预处理过程。预解析处理的工作主要是变量提升和给变量分配内存,具体过程是在每个作用域中查找var声明的变量、函数定义和命名函数(函数参数),找到它们后,在当前作用域中给他们分配内存,并给他们设置初始值。预解析设置的初
Jacquelyn38 Jacquelyn38
4年前
重学JavaScript第1集|变量提升
变量提升就好比JavaScript引擎用一个很小的代码起重机将所有var声明和function函数声明都举起到所属作用域(所谓作用域,指的是可访问变量和函数的区域)的最高处。这句话的意思是:如果在函数体外定义函数或使用var声明变量。则变量和函数的作用域会提升到整个代码的最高处,此时任何地方访问这个变量和调用这个函数都不会报错;而在函数体内定义函数或使用va
Stella981 Stella981
4年前
Python学习笔记(一)
一、变量和简单数据类型(一)变量变量的命名和使用变量名只能包含字母、数字和下划线。不能以数字开头。变量名不能包含空格,用下划线。不要将Python关键字和函数名用作变量名。要简短、具有描述性。小写字母l和数字1,大写字母O
Wesley13 Wesley13
4年前
C++ 注释
C注释程序的注释是解释性语句,您可以在C代码中包含注释,这将提高源代码的可读性。所有的编程语言都允许某种形式的注释。C支持单行注释和多行注释。注释中的所有字符会被C编译器忽略。1include<iostream23/runthisprogramusingthe
小万哥 小万哥
2年前
Python 注释:解释和优化代码可读性
注释可以用来解释Python代码。注释可以用来使代码更易读。注释可以用来在测试代码时防止执行。创建注释注释以开始,Python会忽略它们:示例:获取您自己的Python注释Python这是一个注释print("Hello,World!")注释可以放在一行的
子桓 子桓
2年前
GO语言集成开发工具环境 GoLand 2023中文安装教程
1.智能代码补全:GoLand能够根据上下文自动补全代码,包括函数名、变量名、包名等。它还能够识别代码中的错误和警告,快速修复和优化代码。2.强大的调试功能:GoLand提供了强大的调试功能,包括设置断点、单步调试、查看变量值、跟踪Goroutine等。它
小万哥 小万哥
2年前
C 语言注释和变量详解
C语言中的注释C语言中可以使用注释来解释代码并使其更具可读性。它还可以在测试替代代码时防止执行。单行注释单行注释以两个斜杠(//)开头。//和行末之间的任何文本都会被编译器忽略(不会被执行)。此示例在代码行之前使用单行注释:c//这是一个注释printf(
蚀刻
蚀刻
Lv1
试问乡关何处是,水云浩荡迷南北。
文章
4
粉丝
0
获赞
0