文档详情

14条最佳JavaScript代码编写技巧.pdf

发布:2017-08-19约1.45万字共12页下载文档
文本预览下载声明
1. ‘var’ 1. ‘var’ 11.. 总是使用 ‘‘vvaarr’’ 在JavaScript 中,变量不是全局范围的就是函数范围的,使用”var”关键词将是保持变量简 洁明了的关键。当声明一个或者是全局或者是函数级(function-level)的变量,需总是前 置”var”关键词,下面的例子将强调不这样做潜在的问题。 不使用 Var 造成的问题 1 var i=0; // This is good - creates a global variable 2 function test() { 3 for (i=0; i10; i++) { 4 alert(Hello World!); 5 } 6 } 7 test(); 8 alert(i); // The global variable i is now 10! 复制代码 因为变量函数中变量 i 并没有使用 var 使其成为函数级的变量,在这个例子中它引用了 全局变量。总是使用 var 来声明全局变量是一个很多的做法,但至关重要的一点是使用 var 定义一个函数范围的变量。下面这两个方法在功能上是相同的: 正确的函数 9 function test() { 10 var i=0; 11 for (i=0; i10; i++) { 12 alert(Hello World!); 13 } 14 } 复制代码 2. 2. 22.. 特性检测而非浏览器检测 一些代码是写来发现浏览器版本并基于用户正使用的客户端的对其执行不同行为。这个, 总的来说,是一个非常糟的实践。更好的方法是使用特性检测,在使用一个老浏览器可能 不支持的高级的特性之前,首先检测(浏览器的)是否有这个功能或特性,然后使用它。 这 单 独 检 测 浏 览 器 版 本 来 得 更 好 , 即 使 你 知 道 它 的 性 能 。 你 可 以 在 /faq/faq_notes/not_browser_detect.html 找到一个深入讨论这个 问题的文章。 例子: 15 if (document.getElementById) { 16 var element = document.getElementById(MyId); 17 } 18 else { 19 alert(Your browser lacks the capabilities required to run this script!); 20 } 复制代码 3. 3. 33.. 使用方括号记法 当访问由执行时决定或者包括要不能用”.”号访问的对象属性,使用方括号记法。如果你不 是一个经验丰富的Javascript 程序员,总是使用方括号是一个不错的做法 对象的属性由两种固定的方法来访问:”.”记法和”[ ]“方括号记法: “.”号记法 21 MyOperty“[ ]“ 复制代码 方括号记法 22 MyObject[property] 复制代码 使用”.”号,属性名是硬代码,不能在执行时改变。使用”[ ]“方括号,属性名是一个通过计 算属性名而来的字符串。字符串要以是硬代码,也可能是变量,甚至可以是一个调回一个 字母串值的函数。如果一个属性名在执行产生,方括号是必须,如果你有 “value1″, “value2″, 和 “value3″这样的属性,并且想利用变量 i=2来访问。 这个可以运行: 23 MyObject[value+i] 复制代码 这个不可以: 24 MyObject.value+i 复制代码 并且在某些服务器端环境(PHP、Struts 等)下,Form 表单被附加了 [ ] 号来表示 Form 表单在服务器端必须被当作数组来对待。如此,用”.”号来引用一个包含 [ ] 号的字段将不 会执行,因为 [ ] 是引用一个 Javascript 数组的语法。所以,[ ] 号记法是必须的: 这个可以运行: 25 formref.elements[name[]] 复制代码 这个不可以: 26 [] 复制代码 推荐使用”[ ]“方括号记法是说当其需要时(明显地)总是使用它。当不是严格需要使用它 的时候,它是一个私人的偏好和习惯。一个好的经验原则是,使用”.”号记法访问
显示全部
相似文档