JavaScrip学习——规范
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScrip学习——规范相关的知识,希望对你有一定的参考价值。
参考:
- 汤姆大叔的博客 : http://www.cnblogs.com/TomXu/archive/2011/12/28/2286877.html
- 阮一峰 :http://www.ruanyifeng.com/blog/2012/10/javascript_module.html
JavaScript规范
- 为了防止命名冲突尽量少用全局变量
function sum(x, y) { // 不推荐写法: 隐式全局变量,即使想要定义成全局也不要使用这种写法,而应该在全局环境中使用var定义 result = x + y; return result; }
function foo() { // a是局部变量但b是全局 var a = b = 0; }
- 尽量将函数中的变量声明提到函数顶部
function func() { var a = 1, b = 2, sum = a + b, myobject = {}, i, j; // function body... }
- 遍历数组时预先取得数组长度(防止每次循环都要取长度)
// 次佳的循环 for (var i = 0; i < myarray.length; i++) { // 使用myarray[i]做点什么 }
for (var i = 0, max = myarray.length; i < max; i++) { // 使用myarray[i]做点什么 }
- 尽量不要扩展js内置的构造函数原型(Object(), Array(), 或Function())
if (typeof Object.protoype.myMethod !== "function") { Object.protoype.myMethod = function () { // 如果必要... }; }
- 不使用eval()、 with、 for in
- 不要给setInterval(), setTimeout()和Function()构造函数传递字符串(等同于使用eval())
// 反面示例 setTimeout("myFunc()", 1000); setTimeout("myFunc(1, 2, 3)", 1000); // 更好的 setTimeout(myFunc, 1000); setTimeout(function () { myFunc(1, 2, 3); }, 1000);
- 使用Number()而非parseInt(),使用parseInt()时带上基数
var month = "06", year = "09"; month = parseInt(month, 10); year = parseInt(year, 10);
- 使用统一的缩进风格
- 尽量不要省略{}
- 构造函数首字母大写
- 合理使用注释
- 使用立即执行(不污染全局、防止私有变量被外部修改)
var module1 = (function(){ var _count = 0; var m1 = function(){ //... }; var m2 = function(){ //... }; return { m1 : m1, m2 : m2 }; })();
-
//放大模式,用于扩展、继承
var module1 = (function (mod){ mod.m3 = function () { //... }; return mod; })(module1);
var module1 = ( function (mod){ //宽放大模式,防止加载到空对象出错 return mod; })(window.module1 || {});
以上是关于JavaScrip学习——规范的主要内容,如果未能解决你的问题,请参考以下文章
19 01 11 javascript ?????????????????????(???????????????) ??????????????????????????????(代码片段