14条最佳JS代码编写技巧[译]

作者:Sofish 来源:幸福收藏夹 时间:2009-11-09 19:37:00 

写任何编程代码,不同的开发者都会有不同的见解。但参考一下总是好的,下面是来自 Javascript Toolbox 发布的 14条最佳JS代码编写技巧

1. 总是使用 ‘var’

在JavaScript中,变量不是全局范围的就是函数范围的,使用”var”关键词将是保持变量简洁明了的关键。当声明一个或者是全局或者是函数级(function-level)的变量,需总是前置”var”关键词,下面的例子将强调不这样做潜在的问题。

不使用 Var 造成的问题

var i=0; // This is good - creates a global variable
function test() {
   for (i=0; i<10; i++) {
      alert("Hello World!");
   }
}
test();
alert(i); // The global variable i is now 10!

因为变量函数中变量 i 并没有使用 var 使其成为函数级的变量,在这个例子中它引用了全局变量。总是使用 var 来声明全局变量是一个很多的做法,但至关重要的一点是使用 var 定义一个函数范围的变量。下面这两个方法在功能上是相同的:

正确的函数

function test() {
   var i=0;
   for (i=0; i<10; i++) {
      alert("Hello World!");
   }
}

正确的函数

function test() {
   for (var i=0; i<10; i++) {
      alert("Hello World!");
   }
}

2. 特性检测而非浏览器检测

一些代码是写来发现浏览器版本并基于用户正使用的客户端的对其执行不同行为。这个,总的来说,是一个非常糟的实践。更好的方法是使用特性检测,在使 用一个老浏览器可能不支持的高级的特性之前,首先检测(浏览器的)是否有这个功能或特性,然后使用它。这单独检测浏览器版本来得更好,即使你知道它的性 能。你可以在 http://www.jibbering.com/faq/faq_notes/not_browser_detect.html 找到一个深入讨论这个问题的文章。

例子:

if (document.getElementById) {
   var element = document.getElementById('MyId');
}
else {
   alert('Your browser lacks the capabilities required to run this script!');
}

标签:技巧,编程,js代码
0
投稿

猜你喜欢

  • 详细讲解如何删除Access数据库中的空记录

    2008-11-28 14:58:00
  • CSS背景属性5个应用实例

    2009-09-13 20:54:00
  • 玩体验,先忘掉自己

    2010-01-30 13:36:00
  • Asp WinHttp.WinHttpRequest.5.1 对象使用详解

    2012-05-02 10:15:27
  • js查找/搜索页面中的字符源代码

    2008-02-17 17:13:00
  • AJAX和DOM的运行经验

    2008-05-02 21:05:00
  • 使用ASP订制自己的XML文件读写方法

    2008-10-24 09:35:00
  • mysql 错误:ERROR 1045 (28000): Access deni

    2010-09-30 14:48:00
  • ASP 代码出现80040e14错误的解决方法

    2011-03-29 10:53:00
  • 20年来我得到的20条编程经验

    2010-05-26 13:44:00
  • ASP生成静态网页各种方法收集整理

    2008-02-18 19:25:00
  • 浅析Banner构成与创意设计

    2009-11-28 16:25:00
  • 类型为search的input及相关属性

    2009-02-11 12:49:00
  • 36个折纸风格logo设计

    2009-09-17 13:13:00
  • ASP 常见的连接字符串写法(access2007)

    2011-03-25 10:40:00
  • 也谈网页圆角的背景图法

    2009-03-19 14:09:00
  • 17个javascript自定义函数库

    2008-02-26 11:49:00
  • asp里Sub与Function有什么区别

    2007-08-17 10:39:00
  • Access2003:不支持这种ActiveX控件

    2010-12-09 19:59:00
  • DHTML+XML+ASP+CSS的树形目录

    2008-10-24 14:29:00
  • asp之家 网络编程 m.aspxhome.com