开发者最容易犯的13个JavaScript错误

justjavac 发表于 2012-04-05

开发者最容易犯的JavaScript错误,总结出13个。 这些当中可能少不了你犯的错误。 我们描述了这些陋习,并列出来解决办法,希望对开发者有帮助。

1.for…数组迭代的用法 Usage of for..in to iterate Arrays

举例:

var myArray = [ “a”, “b”, “c” ]; var totalElements = myArray.length; for (var i = 0; i < totalElements; i++) { console.log(myArray[i]); }

这里主要的问题是语句中的“for…”不能保证顺序,这意味着你将获得不同的执行结果。 此外,如果有人增加一些其他自定义功能的函数Array.prototype,你的循环将重复遍历这些函数,就像原数组项。

解决办法:一直使用规则的for循环来遍历数组。

var...

现在就使用HTML5的十大原因

justjavac 发表于 2012-04-05

你难道还没有考虑使用HTML5? 当然我猜想你可能有自己的原因; 它现在还没有被广泛的支持,在IE中不好使,或者你就是喜欢写比较严格的XHTML代码。

HTML5是Web开发世界的一次重大的改变,事实上不管你是否喜欢,它都是代表着未来趋势。 其实HTML5并不难理解和使用。我们这里能列出许多原因为什么现在要开始使用HTML5。

目前有很多的文章介绍使用HTML5并且介绍了使用它的优势和好处,没错,我们这篇文章也类似。 随着更多这样的文章,以及Apple的支持,Adobe围绕HTML5的产品开发,以及移动flash的死亡, 如此多网站的支持,我想对那些仍旧没有或者不想接受它的人说一些话。 我认为主要得原因是,它看起来像一个神秘的东西。 很多感觉它像喷气背包或者飞行汽车。 一个未经验证的非凡想法但是并不实际。 但是事实上现在已近非常的实际了。

为了解密HTML5并且帮助顽固的开发设计人员,我这里写了列出了使用HTML5的几大原因,希望对大家有帮助!

第十大原因:易用性

两个原因使得使用HTML5创建网站更加简单: 语义上及其ARIA。 新的HTML标签像<header>,<footer>,<nav>,<section>, <aside>等等,使得阅读者更加容易去访问内容。 在以前,即使你定义了class或者ID你的阅读者也没有办法去了解给出的一个div究竟是什么。 使用新的语义学的定义标签,你可以更好的了解HTML文档,并且创建一个更好的使用体验。

ARIA是一个W3C的标准主要用来对HTML文章中的元素指定“角色“, 通过角色属性来创建重要的页面地形, 例如headerfooternavigation或者aritcle很有必要。 这一点曾经被忽略掉了并且没有被广泛使用,因为事实上并不验证。 然而,HTML5将会验证这样属性。 同时,HTML5将会内建这些角色并且无法不覆盖。 更多的HTML5和ARIA讨论,请大家查看这里

第九大原因:视频和音频支持

忘了flash和其它第三方应用吧,让你的视频和音频通过HTML5标签<video><audio>来访问资源。 正确播放媒体一直都是一个非常可怕的事情,你需要使用<embed><object>标签, 并且为了它们能正确播放必须赋予一大堆的参数。 你的媒体标签将会非常复杂,大堆得令人迷惑的代码。 而且HTML5视频和音频标签基本将他们视为图片:<video src=""/>

但是其它参数例如宽度和高度或者自动播放呢? 不必担心,只需要像其它HTML标签一样定义:

<video...

细数javascript容易被忽略的语法陷阱

justjavac 发表于 2012-04-05

JavaScript 可算是世界上最流行的编程语言,它曾被 Web 开发设计师贴上噩梦的标签, 虽然真正的噩梦其实是 DOM API,这个被大量的开发与设计师随手拈来增强他们的 Web 前端的脚本语言, 如今越来越被重视,虽则如此,JavaScript 仍然拥有很多让人费解的东西。

## 1. 它以 Java 命名,但并不是 Java

它最初叫 Mocha, 接着改名为 LiveScript,最后才确定命名为 JavaScript, 根据历史记录,Java 的命名与 Netscape 和 Sun 之间的合作有关, 作为交换条件,Netscape 在他们备受欢迎的浏览器中创建了 Java 运行时。

值得一提的是,这个名字的出台几近一个玩笑, 要知道,LiveScript 和 Java 在客户端脚本方面存在敌对关系。

不管怎么说,人们后来不得不一再澄清的一件事就是,JavaScript 和 Java...

写了10年Javascript未必全了解的连续赋值运算

justjavac 发表于 2012-04-05

一、引子

var a = {n:1}; a.x = a = {n:2}; alert(a.x); // --> undefined 

这是蔡蔡在看jQuery源码 时发现这种写法的。 以上第二句 a.x = a = {n:2} 是一个连续赋值表达式。 这个连续赋值表达式在引擎内部究竟发生了什么?是如何解释的?

二、猜想

猜想1:从左到右赋值,a.x 先赋值为 {n:2},但随后 a 赋值为 {n:2}, 即 a 被重写了,值为 {n:2},新的 a 没有...

javascript程序编码规范

justjavac 发表于 2012-04-05

这是一套适用于javascript程序的编码规范。 它基于Sun的Java程序编码规范。 但进行了大幅度的修改, 因为javascript不是Java。

软件的长期价值直接源于其编码质量。 在它的整个生命周期里,一个程序可能会被许多人阅读或修改。 如果一个程序可以清晰的展现出它的结构和特征,那就能减少在以后对其进行修改时出错的可能性。

编程规范可以帮助程序员们增加程序的健壮性。

所有的javascript代码都是暴露给公众的。 所以我们更应该保证其质量。 保持整洁很重要。

javascript文件

javascript程序应独立保存在后缀名为.js的文件中。

javascript代码不应该被包含在HTML文件中,除非这是段特定只属于此部分的代码。 在HTML中的javascript代码会明显增加文件大小,而且也不能对其进行缓存和压缩。

filename.js应尽量放到body的后面。 这样可以减少因为载入script而造成其他页面内容载入也被延迟的问题。 也没有必要使用 language或者type属性。 MIME类型是由服务器而非scripttag来决定的。

缩进

缩进的单位为四个空格。 避免使用Tab键来缩进(即使现在已经是21世纪了),也始终没有个统一的Tab长短标准。 虽然使用空格会增加文件的大小,但在局域网中几乎可以忽略,且在 最小化过程中也可被消除掉。

每行长度

避免每行超过80个字符。

当一条语句一行写不下时,请考虑折行。 在运算符号,最好是逗号后换行。在运算符后换行可以减少因为复制粘贴产生的错误被分号掩盖的几率。 下一行应该缩进8个空格。

注释

不要吝啬注释。

给以后需要理解你的代码的人们(或许就是你自己)留下信息是非常有用的。 注释应该和它们所注释的代码一样是书写良好且清晰明了。 偶尔的小幽默就更不错了。 记得要避免冗长或者情绪化。

...