2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超2個(gè)贊
分號(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)。

TA貢獻(xiàn)1942條經(jīng)驗(yàn) 獲得超3個(gè)贊
不寫(xiě)分號(hào)并非是js的強(qiáng)制語(yǔ)法規(guī)則。而且js只是保證了可以幫你加上,但并不是一定幫你準(zhǔn)確的加上。所以,如果要不寫(xiě)分號(hào),那么就需要建立在JavaScript能夠保證正確的給源代碼加上分號(hào),當(dāng)然這個(gè)時(shí)候不寫(xiě)分號(hào)就成為了JavaScript的標(biāo)準(zhǔn)語(yǔ)法規(guī)則了。就如同縮進(jìn)是語(yǔ)法規(guī)則的pyhton,所以如果去python那里主張一下去掉縮進(jìn)會(huì)是什么后果可想而知。
大家都吃水果,突然有一天有人說(shuō)水果里面李子好吃,大家都吃李子吧。果然是爭(zhēng)論一片。雖然說(shuō)愛(ài)吃啥吃啥比較明智一點(diǎn),但是,爭(zhēng)論半天到底最終吃的還是不是水果,也沒(méi)有人關(guān)心是撥皮還是不撥皮了。
作為多種語(yǔ)言工具的使用者,從C開(kāi)始可能保持了寫(xiě)分號(hào),在js這里遇到了一個(gè)程序語(yǔ)言定義上出現(xiàn)的分號(hào)可不寫(xiě)的大坑,但也不說(shuō)明從C開(kāi)始愛(ài)寫(xiě)分號(hào)有什么錯(cuò),只是想簡(jiǎn)簡(jiǎn)單單的將通用的語(yǔ)法規(guī)則用到其他語(yǔ)言上,所以,能夠掌握什么時(shí)候?qū)懯裁磿r(shí)候不寫(xiě)的確很流弊,的確很大神。但是我什么時(shí)候都寫(xiě)分號(hào),照樣不影響正常生理工作也很重要。
所以不寫(xiě)分號(hào)很流弊,但是要想讓我站到不寫(xiě)分號(hào)黨,那么就請(qǐng)讓不寫(xiě)分號(hào)可以保證能夠正確的給我加上分號(hào)再說(shuō)吧。
添加回答
舉報(bào)