JS编码技巧:翻译的14天JS编写技巧

2016-02-20 01:12 3 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享JS编码技巧:翻译的14天JS编写技巧教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

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

1. 总是使用 ‘var’

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

不使用 Var 造成的问题

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

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

正确的函数

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

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

正确的函数

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

function test() {
   for (var i=0; i10; 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!');
}

来源:https://www.tulaoshi.com/n/20160220/1633480.html

延伸阅读
标签: Web开发
背景:接触JavaScript快两年了。从最开始对她充满着好奇,到现在的学习了许多关于她的框架。朋友问我:都有这么多框架,你为何还要去学最底层的面向对象呢?其实这个问题:另一个朋友已经替我回答了。无论以后框架在怎么变,只要了解底层的原理,学起来都是很容易上手的。好了,我们开始学习了。     1、    创...
标签: Web开发
这是一个特殊的内建函数eval包括了运算式子为其参数,运算元,并回传一个值. 这函数对于运算一个表示的数值字串而言非常有用,举例来看,从FORM所输入的值总是字串,但你也许想要拿来运算,那我该怎么办?? 下面的这一个例子包函了输入的文字栏位,应用的运算函数和显示结果的另一区块.假如你打了一个数值运算式在第一个栏位,并且按下了按...
标签: Web开发
以下是我们所制作的跑马灯效果的源程序 <html <head <script language="JavaScript" <!-- Hide var scrtxt="这儿的讯息可以改为你要告诉别人的话 "+" 或是注意事项 ..."; var lentxt=scrtxt.length; var width=100; var pos=1-width; function scroll() { pos++; var scroller=""; if (pos==lentxt) { p...
标签: Web开发
使用JS是可以让函数不直接执行的,而是在过了一个指定的时间间隔后才执行。这就叫做事件事件。 With JavaScript, it is possible to execute some code NOT immediately after a function is called, but after a specified time ...
标签: Web开发
问题:就是将()()()((())())换成[][][[[]][]]的那种了,处理括弧配对用的 作者:infinte 要求: [1]支持任意的“括弧”,也就是可以用{}()……或者类似XML的:a/a、[cc][cc:over]、{ttt] [ttt} [2]严格按照层次匹配,就是(a)b(c(d)e)换成[a]b[c[d]e]而非[a]b[c(d]e) (结束太早了) [3]左括号比右括号多时,保留多余的括号,即:...

经验教程

72

收藏

65
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部