分享JavaScript开发实战经验
创始人
2024-08-02 20:50:21
0次

JavaScript是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,下面介绍九个JavaScript开发的经验,供大家参考。

1、使用正确的  

 

但是在源代码中,以下这种标签写法随处可见:

 

  1.  
  2. //insert your code here  
  3.  

 

在 HTML 中,language 属性已经过时,因为具有 type 属性后,language 它是冗余的。不要再这样写了。

事实上,客户端默认为将 JavaScript 代码指定 type=”text/javascript” 属性,除非需要 type=”application/x-javascript” 这样的类型,否则完全没有必要写 type 属性。关于 JavaScript MIME 类型,这里有一篇参考文档:http://krijnhoetmer.nl/stuff/javascript/mime-types/

2、将代码放置于外部文件

使用外部 .js 文档比在 html 文档里直接写 JavaScript 代码要简洁一些,同时也使得 JS 文件可以被缓存,保证网站资源的快速访问。

将你的 JavaScript 代码置于一个 .js 文档中,然后在 html 文档中使用  

 

3、避免使用 HTML 注释包裹代码

90 年代一些非常古老的浏览器无法执行 JavaScript 代码。为了防止这些浏览器出现不必要的结果。在 1994 年至 1997 年间,在 HTML 中使用注释包裹 JavaScript 代码是良好的兼容方案,以保证不支持 JavaScript 的浏览器能够忽略它。

这里是一个简单案例:

 

  1.  
  2.  
  3.  

 

然而在 2010 年,所有的浏览器(甚至是可爱的 IE 6)都能解释 JavaScript 代码,因此绝对没有使用注释包裹 JS 代码的必要了。更糟的是,如果代码被 HTML 注释包裹,并且使用了 — 符号,浏览器可能会误以为 HTML 文档已经结束。

4、使用框架

除非你的 JavaScript 代码很短或者很简单,你应该通过框架来避免过多代码上的重复劳动。在我看来,jQuery 是***的,有一个很棒的社区,所以值得尝试。

芒果语:其实 YUI 也很棒,系统、强大、完善、稳妥。更有牛逼叉叉的 Loader 机制,更高效地提高 Web 应用的性能。

5、使用 var 关键字声明变量

你应当使用 var 语句来声明变量,否则变量会存在于全局作用域内,并且使用 var 使得代码可读易懂。

比如下面的案例:

 

  1. var name = "Jean";  
  2. var size = data.length; 

 

之前在 JavaScript 中的对象引用机制 的评论中也有涉及变量作用域的问题。

6、保持代码的分离

几年前,当一个程序员想要为一个 HTML 元素添加事件时(比如说,你想要在用户输入时验证时间信息),他会使用特殊的属性把 JavaScript 代码放置于 html 中,比如 onblur、onchange,onclick 等等。比如:

虽然照样可行,但却很不简洁。HTML 应当只包含文档的结构层面,就如同使用内联 CSS 是不好的做法一样,内联 JavaScript 同样不可取。

取而代之,下面的代码如何?使用 jQuery 也很简单:

 

  1. $(document).ready(function(){  
  2. $('input[name=date]').bind('change', validateDate);  
  3. }); 

 

7、在文档底部包含脚本文件

不久以前,在 和 标签之间插入脚本文件一度成为***实践。但浏览器是顺序解析文档,并动态加载外部文件的。这就意味着在页面头部插入脚本会在安排在页面内容之前加载。

为了在内容就绪之后再加载脚本,JavaScript 文件应该在文档底部被包含。就像下面这样:

 

  1.  
  2.  
  3.  

 

8、使用 JSLint

JSLint 是一款用于 JavaScript 源代码检查的应用程序。如果它发现 JS 中存在某些问题,就会返回相关的问题描述信息和大概的解决方案。

JSLint 能有效发现代码中的缺陷,或者说代码风格上值得改进之处。这个站点是 JavaScript 开发绝对值得收藏的。

9、不要轻易使用 document.write

陈旧的 document.write 方法已经被不赞成使用了好些年,然而这仍然是一贯使用的方法。

 

  1. document.write("hello world"); 

 

应当使用 DOM 的 innerHTML 属性在页面中插入文本。

 

  1. document.getElementById('hello').innerHTML = 'hello world'; 

 

英文原稿:http://www.catswhocode.com/blog/best-practices-for-modern-javascript-development
翻译整理:http://www.mangguo.org/9-best-practices-for-javascript-development/

【编辑推荐】

  1. JavaScript重构 模块划分和命名空间
  2. 谈JavaScript中的移除空事件处理程序
  3. 谈JavaScript中的事件委托
  4. 详解JavaScript之分解任务
  5. 详细介绍JavaScript中的cookie

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...