如何正确使用javascript来进行我们的程序开发
今天在github上面找到了一个关于如何正确使用javascript来进行我们的程序开发.我就恬不知耻的来了个原创啊..坑爹啊.拿来和大家分享一下吧.
AmostlyreasonableapproachtoJavascript.
Types//类型
Objects//对象
Arrays//数组
Strings//字符串
Functions//函数
Properties//属性
Variables//变量
Hoisting//变量提升
ConditionalExpressions&Equality//条件表达式和等式.
Blocks//块代码
Comments//注释
Whitespace//空格
Commas//逗号
Semicolons//分号
TypeCasting&Coercion//类型转换
NamingConventions//命名规则
Accessors//访问
Constructors//构造器
Events//时间
Modules//模型
jQuery//
ECMAScript5Compatibility//ECMA5兼容
Testing//测试
Performance//性能
Resources//资源
IntheWild
Translation
TheJavaScriptStyleGuideGuide
Contributors
License
Types(类型)
原始类型:当访问一个原始类型的时候,其实直接访问该原始类型的内容.
string
number
boolean
null
undefined
varfoo=1,
bar=foo;
bar=9;
console.log(foo,bar);//=>1,9
复杂类型:当你访问一个复杂类型数据类型的时候,其实是通过引用访问该变量的值.
object
array
function
varfoo=[1,2]; bar=foo; bar[0]=9; console.log(foo[0],bar[0]);//=>9,9
object(对象)
使用对象字面量来创建对象(literal)
//bad varitem=newObject(); //good varitem={};
不要使用保留关键字作为对象的属性名.这在IE8下无法工作.
//bad varsuperman={ default:{clark:"kent"}, private:true }; //good varsuperman={ defaults:{clark:"kent"}, hidden:true };
array(数组)
同样使用字面量方法来创建数组
//bad varitems=newArray(); //good varitems=[];
如果你不知道数组的长度,那么使用Array的内置方法push进行插入操作
varsomeStack=[]; //bad someStack[someStack.length]="vein"; //good someStack.push("vein");
当你想要拷贝一个数组的时候,使用array.slice
varlen=items.length,//指的就是上面的内容... itemCopy=[], i; //bad for(i=0;i<len;++i){ itemCopy[i]=items[i]; } //good itemCopy=items.slice();//这里要注意了.这个我还真不知道...
Strings字符串
使用单引号(singlequotes)来包围字符串...//这里我没有找到合适的关于性能方面的解释,我个人也喜欢这么用,(穿的少总比穿得多好看点吧..你懂得..)
//bad varname="BobParr"; //good varname="BobParr"; //bad varfullName="Bob"+this.lastName; //good varfullName="Bob"+this.lastName;
字符串长于80个字符的时候需要使用字符串连接在多行进行编写..注意,如果过度使用,连接字符串将会影响性能(performance)
//bad varerrorMessage="ThisisasuperlongerrorthatwasthrownbecauseofBatman.WhenyoustoptothinkabouthowBatmanhadanythingtodowiththis,youwouldgetnowherefast."; //bad varerrorMessage="Thisisasuperlongerrorthatwasthrownbecause\ ofBatman.WhenyoustoptothinkabouthowBatmanhadanythingtodo\ withthis,youwouldgetnowhere\ fast."; //good varerrorMessage="Thisisasuperlongerrorthatwasthrownbecause"+ "ofBatman.WhenyoustoptothinkabouthowBatmanhadanythingtodo"+ "withthis,youwouldgetnowherefast.";
如果是有计划的建立一个数组,像下面这样.使用Array.join效果会更好..
varitems, messages, length, i; messages=[{ stat:"success", message:"Thisoneworked" },{ stat:"success", message:"Thisoneworked" },{ stat:"success", message:"Thisoneworked" } ]; length=messages.length; //bad functioninbox(messages){ items="<ul>"; for(i=0;i<length;i++){ items+="<li>"+messages[i].message+"</li>"; } returnitems+"</ul>"; } //good functioninbox(messages){ items=[]; for(i=0;i<length;i++){ items[i]=messages[i].message; } return"<ul><li>"+items.join("</li><li>")+"</li></ul>"; }
函数(Functions)
//匿名函数表达式.. varanonymous=function(){ returntrue; }; //命名函数表达式. varnamed=functionnamed(){ returntrue; }; //即时引用函数 (function(){ console.log("WelcometotheInternet.Pleasefollowme."); })();
永远不要在非函数的块代码(if,while)中定义函数.相应的,在代码块中间函数赋值给外部的变量名..
//bad if(currentUser){ functiontest(){ console.log("Nope."); } } //good vartest; if(currentUser){ test=function(){ console.log("Yup"); };//becarefulwiththesemi-colon. }
Properties(属性)
使用点语法来访问属性.
varluke={ jedi:true, age:28 }; //bad varisJedi=luke["jedi"]; //good varisJedi=luck.jedi;
当使用变量访问对象属性时,使用[]方括号来访问
varluke={ jedi:true, age:28 }; functiongetProp(prop){ returnluke[prop]; } varisJedi=getProp("jedi");
相关文章
- 【说站】javascript严格相等运算符如何使用
- 【说站】javascript中Array.slice()如何使用
- 【说站】javascript关系操作符如何使用
- 如何正确且恰当地使用javascript!
- 如何使用JavaScript来验证表单中的内容是否为详解编程语言
- 在b/s开发中经常用到的javaScript技术
- javascript数组使用调用方法汇总
- JavaScript验证浏览器是否支持javascript的方法小结
- 使用母版页时内容页如何使用css和javascript
- Javascript链式调用实现代码(参考jquery)
- JavaScript计算图片加载数量的代码
- 如何使用JavaScript和正则表达式进行数据验证
- Javascript中的forin循环和hasOwnProperty结合使用
- 如何使用Javascript获取距今n天前的日期
- 使用GruntJS链接与压缩多个JavaScript文件过程详解
- JavaScript命名空间使用介绍
- javascript按位非运算符的使用方法
- javascript中的if语句使用介绍
- JavaScript使用循环和分割来替换和删除元素实例
- JavaScript中伪协议javascript:使用探讨
- javascript中数组的定义及使用实例