每種語言都有它特別的地方,對(duì)于JavaScript來說,使用var就可以聲明任意類型的變量,這門腳本語言看起來很簡(jiǎn)單,然而想要寫出優(yōu)雅的代碼卻是需要不斷積累經(jīng)驗(yàn)的。本文利列舉了JavaScript初學(xué)者應(yīng)該注意的七個(gè)細(xì)節(jié),與大家分享。
(1)簡(jiǎn)化代碼
JavaScript定義對(duì)象和數(shù)組非常簡(jiǎn)單,我們想要?jiǎng)?chuàng)建一個(gè)對(duì)象,一般是這樣寫的:
代碼如下:
var car = new Object();
car.colour = 'red';
car.wheels = 4;
car.hubcaps = 'spinning';
car.age = 4;
下面的寫法可以達(dá)到同樣的效果:
代碼如下:
var car = {
colour:'red',
wheels:4,
hubcaps:'spinning',
age:4
}
后面的寫法要短得多,而且你不需要重復(fù)寫對(duì)象名稱。
另外對(duì)于數(shù)組同樣有簡(jiǎn)潔的寫法,過去我們聲明數(shù)組是這樣寫的:
代碼如下:
var moviesThatNeedBetterWriters = new Array(
'Transformers','Transformers2','Avatar','Indiana Jones 4'
);
更簡(jiǎn)潔的寫法是:
代碼如下:
var moviesThatNeedBetterWriters = [
'Transformers','Transformers2','Avatar','Indiana Jones 4'
];
對(duì)于數(shù)組,還有關(guān)聯(lián)數(shù)組這樣一個(gè)特別的東西。 你會(huì)發(fā)現(xiàn)很多代碼是這樣定義對(duì)象的:
代碼如下:
var car = new Array();
car['colour'] = 'red';
car['wheels'] = 4;
car['hubcaps'] = 'spinning';
car['age'] = 4;
這太瘋狂了,不要覺得困惑,“關(guān)聯(lián)數(shù)組”只是對(duì)象的一個(gè)別名而已。
另外一個(gè)簡(jiǎn)化代碼的方法是使用三元運(yùn)算符,舉個(gè)例子:
代碼如下:
var direction;
if(x < 200){
direction = 1;
} else {
direction = -1;
}
我們可以使用如下的代碼替換這種寫法:
代碼如下:var direction = x < 200 ? 1 : -1;
(2)使用JSON作為數(shù)據(jù)格式
偉大的Douglas Crockford發(fā)明了JSON數(shù)據(jù)格式來存儲(chǔ)數(shù)據(jù),你可以使用原生的javascript方法來存儲(chǔ)復(fù)雜的數(shù)據(jù)而不需要進(jìn)行任何額外的轉(zhuǎn)換,例如:
代碼如下:
var band = {
"name":"The Red Hot Chili Peppers",
"members":[
{
"name":"Anthony Kiedis",
"role":"lead vocals"
},
{
"name":"Michael 'Flea' Balzary",
"role":"bass guitar, trumpet, backing vocals"
},
{
"name":"Chad Smith",
"role":"drums,percussion"
},
{
"name":"John Frusciante",
"role":"Lead Guitar"
}
],
"year":"2009"
}
你可以使用在JavaScript中直接使用JSON,甚至作為API返回的一種格式,在許多的API中被應(yīng)用,例如:
代碼如下:
<div id="delicious"></div><script>
function delicious(o){
var out = '<ul>';
for(var i=0;i<o.length;i++){
out += '<li><a href="' + o[i].u + '">' +
o[i].d + '</a></li>';
}
out += '</ul>';
document.getElementById('delicious').innerHTML = out;
}
</script>