// 缩进注释,和它所描述的段落层级一致
// .text() 防止xss注入
$(‘#sl’).text( msg_text );
};
// 函数返回随机数
get_rangdom = function ( num_arg ){
return Math.random() * numn_arg;
};
// 初始化值
x = get_random( 10 );
y = get_random( 20 );
r = get_random( 360 );
// 添加空白,对齐相似的元素,相似的语句更容易阅读
x += 10 + num;
y -= 20 - num;
2.3 换行要一致
-
在运算符的前面换行,开发者检查更加方便
-
把后续的语句缩进一个层次,比如使用两个空格
-
在逗号分隔符的后面换行
-
方括号或者括号单独占一行。清楚地表明这是语句的结尾,不会迫使读者横向扫寻分号
// 将运算符放在左边,排成一列
let str = ‘我知道你也在向我靠近,’
-
‘星河万顷都是你的见面礼。’
-
‘所以我也走向了你,’
-
‘暮色千里皆是我的回礼。’
-
‘今夜星光月夜皆归你,我也归你~’
// 方括号单独占一行,下一条语句就容易识别了
// 使用尾部逗号,更容易维护
let addressArr = [
‘湖南省’, ‘湖北省’, ‘广西省’,
‘江西省’, ‘江苏省’, ‘内蒙古自治区’,
‘台湾省’, '澳门, ‘香港’,
];
3.1 变量
命名规则
-
变量名使用a - z、A - Z、0 - 9、下划线和$符号
-
变量名不要以数字开头
-
语义化(看其名,知其意)
作用域
-
当变量作用域是整个模块时使用驼峰式(模块名字空间的所有地方都可以访问该变量)
-
当变量作用域不是整个模块时使用下划线 (模块名字空间内的某个函数的局部变量)
-
确保所有模块作用域内的变量至少有两个音节,这样作用域就会很清晰(例如下:)
-
用户中心 ⇒ userCenter
-
商品列表 ⇒ goodsList
-
消息通知 ⇒ messageInfo
-
再来一组例子:
| 变量初始名 | 局部作用域 | 模块作用域 |
| — | — | — |
| str | direction_str | directionStr |
| id | goods_id | goodsId |
| msg | user_msg | userMsg |
- 全局变量用 const 定义,常量性质,字母全部大写(尽量少定义)
3.2 命名空间
-
早期的JavaScript代码比较简单,单独在一张页面上使用,所以大部分时间不需要考虑命名空间的问题,使用全局变量,而不会有什么影响。
-
但是随着JavaScript应用的蓬勃发展和第三方类库的普遍使用,全局变量的数据可能会急剧上升
-
地域之门从此便开启了。(比如,当两个代码库声明了相同的全局变量时)
-
使用单一的全局函数,把其他所有变量的作用域限制在该函数里面,就可以极大地减少这种问题
// 模拟一个第三方库 => jQuery
(function(window){
// 此变量只会在此区域生效,使用完之后垃圾回收机制自动回收
// 不会污染全局变量
let jquery = {};
})(window)
- 命名空间的细粒度划分
// 在 jquery.js 中
let jquery = (function () {
// some code here
}());
// 在 jquery.dom.js 中
let jquery.dom= (function () {
// some code here