在html中设置常量并做判断,写一篇我所理解的javascript编程规范

本文详细介绍了JavaScript的编码规范,包括缩进、分号使用、字符串表示、注释规范、语句和表达式的书写习惯、变量及函数命名约定等内容,旨在提高代码的可读性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用4个空格为缩进层级.(或者按tab制表符键)

2.不要省略分号

3.将一行长度限定为80个字符,超出则换行(在运算符后换行,下一行增加两个层级的缩进)

4.适当增加空行,提高可读性.比如:方法之间,多行或单行注释之前,在方法内的逻辑片段之间插入空行。

5.命名:遵循驼峰大小写命名法。变量以名词命名,方法以动词命名.尽量简短。

can,has,is 返回一个布尔值

get,find,read 返回一个非布尔值

set 用来保存一个值

常量,采用大写字母和下划线来命名,下划线用以分隔单词。MAX_COUNT

构造函数采用驼峰命名法,第一个字母也大写.通常以名词来命名

6.使用双引号来括住字符串。

7.null的使用

null是一个特殊值和undefind不同。

使用null的场景:

1.用来初始化一个变量,这个变量可能赋值为一个对象。

2.用来和一个已经初始化的变量比较,这个变量可以也可以不是一个对象

3.当函数的参数期望是对象时,用做参数传入

4.当函数的返回值期望是对象时,用作返回值传出

不推荐使用的场景

1.不要使用null来检测是否传入了某个参数

2.不要用null来检测一个未初始化的变量

8.undefined的使用.表示声明但是未赋值的变量也可能是未声明的变量或方法。由于typeOf无法区分是未声明

还是未赋值。所以尽量禁用undefined。比如:

var person = null.而不要 var person;

9.使用对象直接量创建对象.

第一行包含左花括号,每个属性名称独占一行,并且保持一个缩进.最后右花括号也独占一行。

//好的写法

var book={

title:"编写风格",

author:"张三"

};

10.推荐使用数组直接量来定义数组

注释.............................................

1.单行注释以两个斜线开始,以行尾结束.独占一行上方空一行,且与本行代码保持同缩进。

2.多行注释。以/开始,/结束。采用java风格.多行注释至少包含3行。第一行/独占一行,第二行以开头,和上一行的保持左对齐,注释开始,最后一行/独占一行

/*

我是多行注释

*/

3.何时添加注释.当代码不够清晰时添加注释.

//初始化count,画蛇添足

var count = 10;

//好的写法

//改变这个值可能会让它变成青蛙

var count = 10;

语句和表达式.......................................

1.if和for即使只有一行,也要带有花括号.花括号风格采用.第一个花括号在第一行的末尾方式.

在括左圆括号之前和右圆括号之后各添加一个空格。比如:

if (true) {

//dosometing......

}

2.switch格式.case和switch左对齐.case之间没有空行.连续执行的case需要加注释说明.

switch (condition) {

case "first":

//代码

break;

case "second":

//代码

break;

}

3.禁用with

4.尽量避免使用continue,来增强代码的可读性。

5.for-in的使用,必须带有object.hasOwnProerty来避免遍历原型连中的属性.不能用for-in来遍历数组。

var prop;

for (prop in object) {

if (object.hasOwnProperty(prop)) {

console.log(" name is "+prop);

console.log(" value is "+object[prop]);

}

}

变量函数和运算符.......................................

1.变量的声明。由于javascript是变量提前的.所以局部变量的定义作为函数内第一条语句。比如:

function doSometingWithItems(items){

var i,len;

var value = 10;

var result = value+10;

for (i=0,len=items.length;i

doSometing(items[i]);

}

}

当无关联的变量声明时,尽量合并var.

var value = 10,

result = value+10,

i,

len;

2.函数的声明.虽然函数声明会被javascript引擎提前,还是要求函数调用在函数声明之后。

即先声明,再调用.

函数内部的函数声明,要紧接着变量声明之后声明

函数声明不应该出现在语句块内。比如:错误写法

if (true) {

function doSometing(){

alert('h1');

}

}

函数名和左括号之间不能有空格.doSometing(item);这个明显区别于if,while等语句块。

3.立即执行的函数.javascript中允许匿名函数.比如:

//将匿名函数赋值给一个变量

var book = function(){

};

//对于立即执行的函数.需要在匿名函数上增加小括号

var book = (function(){

//doSomething

})();

4.需要做全等和全不等比较时。尽量用===和!==

5.禁止使用eval()和new Function,禁止给setTimeout和setInterval传入字符串参数

6.在css中,一定要杜绝使用css中的js表达式。(IE9已经不再支持.)比如:

.box{

width:expression(document.body.offsetWidth+"px");

}

7.最好将所有的javascript代码都放入外置文件中,以确保在HTML代码中不会有内联的javascript代码

8.尽量避免innerHTML方法,可以1.从远程服务器加载,2.加载外部html片段,3写替换函数.替换标识。

避免使用全局变量.......................................

1.尽量使用单全局变量.比如:

YUI定义了唯一全局对象YUI

jQuery定义了两个全局对象 $和jQuery 当$被其他类库使用时可以使用jQuery

Dojo定义了dojo

2.javascript中字符串,数字,布尔值,null和undefined是原始类型。判断原始类型可以用typeOf。

3.除了原始类型都是引用类型.不能用typeOf来判断了.因为都返回object.

检测自定义类型可以用instanceof来检测,function用 typeOf来检测,数组用鸭式辨形法.

function isArray(value){

if( typeof Array.isArray === "function" ){

return Array.isArray(value);

} else {

return Object.prototype.toString.call(value) === "[Object Array]";

}

}

4.检测对象中是否包含某个属性,用in来判断.

配置数据......................................

1.可配置的数据,最好单独存放在一个文件里

url

需要展现给用户的字符串

重复的值

设置(比如每页的配置项)

任何可能发生变更的值

var config = {

MSG_INVALID_VALUE:"Invalid value",

URL_INVALID:"/error/index.jsp",

CSS_SELECTED:"selected"

}

2.适当的抛出异常.throw new Error("");javascript可以 throw 任何东西。但是有些浏览器会不认

尽量throw new Error("");

3.TODO,对于需要以后处理的地方 必须加入//TODO{注解}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值