因?yàn)橹荒苁亲址?。js代碼中json對(duì)象的屬性名只能是字符串,所以可以不用加引號(hào),它會(huì)自動(dòng)轉(zhuǎn)成字符串的。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比尉氏網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式尉氏網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋尉氏地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
加括號(hào)表示執(zhí)行該函數(shù),不加括號(hào)僅表示定義了一個(gè)函數(shù)對(duì)象,比如:
var f=function(){
return 1;
}
此時(shí)f是一個(gè)function對(duì)象
var f=function(){
return 1;
}();
此時(shí)f=1
加括號(hào)為調(diào)用該函數(shù),返回值為函數(shù)返回值;
不加括號(hào)可認(rèn)為是查看函數(shù)完整信息,即查看整個(gè)函數(shù)體,返回值即整個(gè)函數(shù)體,不加括號(hào)傳參相當(dāng)于傳入函數(shù)整體
function test() {
return "test";
}
分別打印
test: function test() {return "test";} //函數(shù)表達(dá)式
test(): test //函數(shù)執(zhí)行結(jié)果
函數(shù)調(diào)用必須加括號(hào),即使無(wú)參數(shù),不然怎么叫做函數(shù)調(diào)用呢。但是當(dāng)用到return語(yǔ)句時(shí),要注意function()和function的區(qū)別,前者返回的是函數(shù)執(zhí)行完的值,
后者直接返回的是函數(shù)【這個(gè)通常用于把函數(shù)當(dāng)做參數(shù)傳遞另一個(gè)函數(shù)中去】。
“我還發(fā)現(xiàn) 當(dāng)調(diào)用某些給定對(duì)象的方法時(shí) 不加Javascript:就會(huì)沒(méi)效果!”
不會(huì)出現(xiàn)這種情況,你所說(shuō)的“沒(méi)效果”不會(huì)出現(xiàn)在 onclick或與之同類的事件上;
因?yàn)閛nclick本身就是針對(duì)JavaScript的事件屬性,所以,這里按規(guī)范要求,是不加javascript:的
即使出現(xiàn)你所講的,不加javascript:這樣的字符,而發(fā)生沒(méi)效果的情況,也是因?yàn)槠渌蛟斐傻?,卻與加不加javascript:沒(méi)關(guān)系。
分號(hào)加與不加完全取決于個(gè)人習(xí)慣,但為了代碼穩(wěn)定(解析出錯(cuò))還是建議使用分號(hào)斷句。
JavaScript有自動(dòng)加分號(hào)的規(guī)則:
1.當(dāng)有換行符(包括含有換行符的多行注釋),并且下一個(gè)token沒(méi)法跟前面的語(yǔ)法匹配時(shí),會(huì)自動(dòng)補(bǔ)分號(hào)。
2.當(dāng)有}時(shí),如果缺少分號(hào),會(huì)補(bǔ)分號(hào)。
3.當(dāng)程序源代碼結(jié)束時(shí),如果缺少分號(hào),會(huì)補(bǔ)分號(hào)。
結(jié)論:
1.在return、break、continue、后自增、后自減五種語(yǔ)句中,換行符可以完全替代分號(hào)的作用。
2.var if do while for continue break return with switch throw try debugger幾種關(guān)鍵字開(kāi)頭的語(yǔ)句,以及空語(yǔ)句,上一行加不加分號(hào)影響不大。
3.凡表達(dá)式語(yǔ)句和函數(shù)表達(dá)式語(yǔ)句,后面不加分號(hào)非常危險(xiǎn),情況極其復(fù)雜。
4.凡(和[開(kāi)頭的語(yǔ)句,前面不加分號(hào)極度危險(xiǎn)。