早该知道的7个JavaScript技巧
    
文章转自:http://www.cnblogs.com/liupeizhi/archive/2012/01/07/2315791.html
?
简洁写法
JavaScript里我最喜欢的一种东西就是生成对象和数组的简写方法。在过去,如果你想创建一个对象,你需要这样:
- 
var?
car
?=?
new
?Object();? ?
 
- 
car.colour
?=?
'red'
;? ?
 
- 
car.wheels
?=?
4
;? ?
 
- 
car.hubcaps
?=?
'spinning'
;? ?
 
- 
car.age
?=?
4
;??
 
下面的写法能够达到同样的效果:
- 
var?
car
?=?{? ?
 
- 
colour:'red',? ?
 
- 
wheels:4,? ?
 
- 
hubcaps:'spinning',? ?
 
- 
age:4? ?
 
- 
}??
 
简单多了,你不需要反复使用这个对象的名称。这样car就定义好了,也许你会遇到invalidUserInSession的问题,这只有你在使用
 IE时会碰到,只要记住一点,不要右大括号前面写分号,你就不会有麻烦。另外一个十分方便的简写是针对数组的。传统的定义数组的方法是这样:
- 
var?
moviesThatNeedBetterWriters
?
 
- 
=?
new
?Array(? ?
 
- 
?'Transformers','Transformers2','Avatar','Indiana ?
 
- 
Jones?4'? ?
 
- 
);??
 
简写版的是这样:
- 
var?
moviesThatNeedBetterWriters
?
 
- 
=?[? ?
 
- 
'Transformers','Transformers2','Avatar','Indiana ?
 
- 
Jones?4'? ?
 
- 
];??
 
对于数组,这里有个问题,其实没有什么图组功能。但你会经常发现有人这样定义上面的 car ,就像这样
- 
var?
car
?=?
new
?Array();? ?
 
- 
car['colour']?=?'red';? ?
 
- 
car['wheels']?=?4;? ?
 
- 
car['hubcaps']?=?'spinning';? ?
 
- 
car['age']?=?4;??
 
数组不是万能的;这样写不对,会让人困惑。图组实际上是对象的功能,人们混淆了这两个概念。另外一个非常酷的简写方法是使用与三元条件符号。你不必写成下面的样子:
- 
… ?
 
- 
var?direction;? ?
 
- 
if(x?
<
?
200
){? ?
 
- 
direction
?=?
1
;? ?
 
- 
}?else?{? ?
 
- 
direction
?=?-1;? ?
 
- 
}? ?
 
- 
…?
 
你可以使用三元条件符号简化它:
- 
var?
direction
?
 
- 
=?
x
?
<
?
200
???1?:?-1;??
 
当条件为true 时取问号后面的值,否则取冒号后面的值。
用JSON形式存储数据
在我发现JSON之前,我使用各种疯狂的方法把数据存贮在JavaScript固有的数据类型里面,例如:数组,字符串,中间夹杂着容易进行拆分的标志符号以及其它的令人讨厌的东西。Douglas Crockford 发明了JSON 之后,一切全变了。
使用JSON,你可以使用JavaScript自有功能把数据存贮成复杂的格式,而且不需要再做其它的额外转换,直接可以访问