(译) 《Javascript 24条最佳实践》

(摘录Javascript 24条最佳实践》

自己一直偏向于实用主义,不是学院派,不是学究派,只讲究把东西能够很好的做出来,但经过一段时间的开发工作当自己总结出来一些东西时,觉得挺有收获,但岂知已早有很多前人早都写的更完美,总结的更好;所以咱们做开发的,务必要统筹好实践与理论、自研与拿来的关系。理论与实践的关系,咱们从小的毛邓都有学习,只是细化下来,到咱们开发人员身上该如何做的问题。我主张在做项目中发现自身技术点的不足,而后抽出时间吃透理论,第二天再投入开发,以更好的更自信的对项目开发负责,如此交替进行,一来项目开发过程中的经验会更加牢固与自信的沉淀下来;二来建立在项目研发需求基础上的技术积累也将更加完善。

来吧,抽时间看看这些原则与方法,不用自己再去造轮子,记住就行,理解更好。

原文标题与地址:

24 JavaScript Best Practices for Beginners

http://net.tutsplus.com/tutorials/JavaScript-ajax/24-JavaScript-best-practices-for-beginners/ 

1.用===取代==

If two operands are of the same type and value, then === produces true and !== produces false.” – JavaScript: The Good Parts

简单来讲就是

var a="123"

var b=123

if(a==b)

{

  alert("a==b"); //right

}

if(a===b)

{

  alert("a===b");//wrong

}

 

2.不建议使用Eval

因赋予字符串太大的权限,会有安全隐患。So Avoid it!

alert(eval("1+3")); //return 4 

3.切勿使用易引起歧义的表达式缩写

如:if(2 + 2 === 4) return 'nicely done'; 

或 if(someVariableExists)  

   x = false  

   anotherFunctionCall();

4.使用JsLint 来规范Javascript 代码

http://www.jslint.com/ 毫不夸张的讲,处女座的人千万不要用,后果很严重。

5.请在页面底部引用Script 脚本

这个原则很多老鸟也不太在乎,但坦白来讲,我们都要具有工匠精神才能够做出优秀的产品不是吗?、

原因很简单,因为页面的加载是按顺序来的,如果写在页面顶端,会延迟页面的显示效果,破坏用户体验。

6.请在For循环外部声明变量

for(var i = 0; i < someArray.length; i++) {  

   var container = document.getElementById('container');  //超级破费的写法,亲,还是写外面吧。

   container.innerHtml += 'my number: ' + i;  

   console.log(i);  

7.有比手拼字符串更快的方法吗?

var arr = ['item 1', 'item 2', 'item 3', ...];  

var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';  

返回一个字符串。该字符串是通过把 数组 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 分隔符 字符串而生成的。
var arr = [1,2,3,4,5];
var str = arr.join("-");
alert(str);// 弹出 1-2-3-4-5

8. 尽量减少全局变量的使用

否则你的代码在与其它程序进行通信时面临很多风险。

9. 老声常谈,在需要的地方尽量写些注释

10. 持续优化与改进

当用户浏览器的JavaScript被禁用时,您老人家写的网站还能正常使用不这种坑爹的问题,还真没尝试过。

11. 不要向SetInterval或者SetTimeOut中传递字符串,用方法名称取代吧。

12. 不要使用With语句

with (being.person.man.bodyparts) {  

   arms = true;  

   legs = true;  

}  

而应该用

var o = being.person.man.bodyparts;  

o.arms = true;  

o.legs = true;  //原因是用With的话,后期变量的赋值会较麻烦。

13. 使用{}来取代New Object()来创建对象

var o = new Object();  

o.name = 'Jeffrey';  

o.lastName = 'Way';  

o.someFunction = function() {  

   console.log(this.name);  

}  

var o = {  

   name: 'Jeffrey',  

   lastName = 'Way',  

   someFunction : function() {  

      console.log(this.name);  

   }  

};  //取代的原因是{}更加健壮。

14. 使用 [ ] 取代New Array()

 var a = new Array();  

a[0] = "Joe";  

a[1] = 'Plumber';  

应该:

var a = ['Joe','Plumber'];  

15. 当需要定义一长列变量时,可以使用逗号取代Var

var someItem = 'some string';  

var anotherItem = 'another string';  

var oneMoreItem = 'one more string'; 

应该是:

var someItem = 'some string',  

    anotherItem = 'another string',  

    oneMoreItem = 'one more string'; 

 

16. 别忘记在句尾加分号

18. “for in”语句来遍历对象中的元素

for(key in object) {  

   if(object.hasOwnProperty(key) {  

     ...then do something...  

   }  

}  

19. 使用FirbugTimer特性来优化你的代码

function TimeTracker(){  

 console.time("MyTimer");  

 for(x=5000; x > 0; x--){}  

 console.timeEnd("MyTimer");  

}  

24. 去掉Language,没必要,并且已经被告弃用多时,恩?怎么没人告诉我

<script type="text/javascript" language="javascript">  

</script> 

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值