JavaScript风格要素

转载 2007年09月29日 13:48:00

关于英文的写作有一本十分著名的书,The Elements of Style(风格要素),编写程序也有一本The Elements of Programming Style(编程风格要素)。证明了在某种程度上,编写程序其实就是语文写作,清晰的风格对程序的质量有着重要的影响。草率含混的风格会隐蔽程序真性。

作为JavaScript Guru, Douglas Crockford提出了自己对JavaScript风格的创见(第一部分第二部分)。

第一部分主要讨论JavaScript语言本身,包括:

  • 淘汰过时的构建。

    讨论了在HTML页面引入JavaScript的方式。经典的写法是:

    <script language=javascript><!--
    --></script>

    language并不是W3C所认同的标准,建议使用的是type, 但作为type值的MIME type并没有标准化(有时是text/javascript, 有时是application/ecmascript),但目前所有的浏览器都是使用JavaScript作为默认的脚本语言,因此仅仅些<script>就是安全的。随着NetScape 3的淘汰,<-- -->也不是必要的了。

    (注:这个东西Web标准社区也有自己的看法,并认为应该写type="text/javascript",我也赞成。)

  • 在结构中始终使用区块。

    莫偷懒,省略区块(即{ })会引发不经意的错误和麻烦。即使只有一句,也老老实实写上:

    if (expression) { ... }
  • 避免在表达式中进行赋值。虽然可以使代码紧凑,但会让控制流程难于理解。
  • 使用对象扩充。在不需要构造函数的对象中,不如先创建一个空对象,然后扩充它。
  • 使用通用库。注意提高代码的重用。

第二部分主要讲的是一些使程序更清晰和简洁的习惯用法:

  • 使用==得当心强类型。1 == true是真,但1 === true却为假。
  • 使用?:运算符选择两值之一。在这种操作中,三元运算符为此而生。
  • 永远不要使用隐含的全局变量。请记得声明变量时加上var.
  • 不要使用?:来选择两种行为的其一。写作p.style.backgroundColor = z ? '#fff' : '#989898';而不是(z == 0) ? p.style.backgroundColor = '#fff' : p.style.backgroundColor = '#989898';
  • 使用||来指定一个默认值。最典型的莫过于处理事件参数了:var e = e || event;
  • 全局变量是邪恶的。
  • 使用内部函数来避免全局变量。

这些风格是Crock在2005年提出的,现在有些已经深入人心(如不要使用全局变量),因而也没有必要多做解释了。如果你有所疑惑,不如详细看看这两篇风格文章,里面有大量的代码来举证这些风格的重要性。

更新:Dojo的风格指南也不错。

 

Javascript风格要素(2)

我们使用习惯用法可以使我们的意图更加的清晰和简洁。 使用==时,当心强制转换 考虑下面函数: function gw(f) { if (d.w.sv.checked == true) ...
  • ljguo212
  • ljguo212
  • 2013年06月10日 11:33
  • 414

Javascript风格要素(1)

程序设计是困难的,其核心是管理的复杂性。计算机程序是人类做出的最复杂的东西。质量是不可靠的且隐蔽的。 好的体系架构是必需给程序足够的结构使其健壮而不会陷入混乱的泥淖,但我们表达一个程序细节的方式...
  • ljguo212
  • ljguo212
  • 2013年06月10日 11:32
  • 405

arcgis api for javascript从地图如何读取要素

arcgis api for javascript如何读取要素,通过ajax请求得到的。 比如: https://gis118.arcgisonline.cn/arcgis/sharing/res...
  • qq_36330643
  • qq_36330643
  • 2017年07月07日 13:34
  • 460

ArcGIS API for Javascript 实现在线要素编辑(二)

1、获取要素服务地址 发布服务MyMapService后,可以在ArcGIS Server的Services Directory中可以看到一个名为MyMapService (FeatureServer...
  • lrspace
  • lrspace
  • 2014年12月06日 23:11
  • 7185

ArcGIS API for Javascript 实现在线要素编辑(一)

初学者记录下安装配置调试过程,如有更好方法或者错误欢迎指正。 1、软件环境 WIn7 64bit系统,关闭防火墙,ArcGIS 10.2,ArcSDE10.2,数据库为SQL Server 2008R...
  • lrspace
  • lrspace
  • 2014年12月04日 00:37
  • 3997

JavaScript风格指南

转载自:https://github.com/alivebao/clean-code-js JavaScript风格指南 目录 介绍变量函数对象和数据结构类测试并发错误处理格式化注释 ...
  • ivan820819
  • ivan820819
  • 2017年01月08日 14:35
  • 398

09 - JS 事件三要素

1、事件三要素: 事件源 :要触发的对象 事件:怎么触发这个事情 事件处理程序: 发生了什么事情 事件源.事件 = function() { 事件处理函数 }...
  • wutengwei007
  • wutengwei007
  • 2016年11月17日 23:54
  • 2127

web2.0网站设计风格要素

web2.0 :我一直听到说这个时髦的词,不管是喜欢还是讨厌web2.0,它都是这种特定的web2.0设计风格的一个主要的部分。这个指南的目的是想给一些设计新 手一些参考,或者是做为一个清单,给那些还...
  • changjunting
  • changjunting
  • 2012年01月11日 14:38
  • 785

浅谈iClient for javascript 要素图层

SuperMap iClient for JavaScript 7C之后提供了一个Elements图层,其自身是一个div,用户可以在该图层上添加任意dom对象,并且支持第三方扩展应用。可以说这是一个...
  • supermapsupport
  • supermapsupport
  • 2016年02月18日 16:25
  • 1153

WPF中的Style(风格,样式)

WPF中的Style(风格,样式)                                                                                   ...
  • cuijie
  • cuijie
  • 2008年01月03日 08:42
  • 382
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaScript风格要素
举报原因:
原因补充:

(最多只允许输入30个字)