摘要:?jiǎn)栴}前一陣子猛然想到一個(gè)問題有分號(hào)自動(dòng)補(bǔ)全機(jī)制在寫時(shí)我是習(xí)慣性在語句后面加上分號(hào)在塊語句后面不加分號(hào)。關(guān)于加不加分號(hào)的問題知乎上一些回答這個(gè)問題的大佬普遍意見是喜歡就好。
問題
前一陣子猛然想到一個(gè)問題,JS有分號(hào)自動(dòng)補(bǔ)全(ASI)機(jī)制,在寫JS時(shí)我是習(xí)慣性在語句后面加上分號(hào),在塊語句后面不加分號(hào)。那么如果沒有加分號(hào)的話,在什么情況下會(huì)出現(xiàn)問題?在JS語句后到底是應(yīng)該加分號(hào)還是不加分號(hào)?
解決問題面對(duì)這個(gè)問題,我來了興趣。于是在網(wǎng)上查了一些資料。關(guān)于加不加分號(hào)的問題,知乎上一些回答這個(gè)問題的大佬普遍意見是,喜歡就好。嗯,很直接。
關(guān)于不加分號(hào)容易產(chǎn)生問題的地方,我在看了多個(gè)地方的貼子總結(jié)了一下,基本就三個(gè)地方出現(xiàn)問題比較多:
1)如果下一行的第一個(gè)token是 ( , [ , / , + , - 這五個(gè)字符之一的話, Javascript 將不會(huì)自動(dòng)在上一行句尾加上分號(hào)。所以,當(dāng)下一行的第一個(gè)token是以上字符時(shí),應(yīng)當(dāng)在上一行或者行首加上分號(hào)
2)continue、return、break、throw后自動(dòng)插入分號(hào)。所以當(dāng) return 出一個(gè)值,千萬不要將那個(gè)值與 return 不在同一行,不然返回的結(jié)果是 undefined 而不是你期望的值。
3)++ , -- 后綴表達(dá)式作為新行開始,會(huì)在行首自動(dòng)插入分號(hào),
關(guān)于我自己每回沒有在塊語句后面沒有加分號(hào),對(duì)于我這個(gè)強(qiáng)迫癥來說是不是不嚴(yán)謹(jǐn)?shù)膯栴},我也在一篇貼子中找到了答案, 那就是 {...} 屬于塊語句,而按照定義塊語句是不需要分號(hào)結(jié)尾的,不管是不是在一行 , 嗯,我果然沒有錯(cuò)。
看了那么多貼子后,我感覺還是在語句后面加分號(hào)比較好,畢竟雖然麻煩一點(diǎn),但是看得舒服(個(gè)人感覺),而且可以避免一些不必要的問題。
參考鏈接:
知乎: https://www.zhihu.com/question/20298345 ASI機(jī)制: https://segmentfault.com/a/1190000004548664
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/106695.html
摘要:在以下的種情況是用回車或換行,是不會(huì)作自動(dòng)插入分號(hào)來讓語句作結(jié)尾。以下情況必用分號(hào)。但有例外,賦值時(shí)可以加分號(hào)是對(duì)的語法。 起因 這個(gè)文章一開始回覆于這篇回答中: javascript初級(jí)問題 也有之前的朋友寫信來問,因?yàn)樵谧x到我個(gè)人寫的一本電子書: 從ES6開始的JavaScript學(xué)習(xí)生活,繁體,gitbook。我在寫作風(fēng)格里有說明,這本電子書中的范例都是使用不用分號(hào)(;)作為代碼...
摘要:本文同步自我的博客園關(guān)于這個(gè)問題,網(wǎng)上已經(jīng)有很多人討論過了,我先說說自己對(duì)這個(gè)問題的回答加但非必須有些人寫代碼,懶得加分號(hào),除非是迫不得已才勉強(qiáng)放一個(gè)分號(hào)上去。 本文同步自我的博客園:http://hustskyking.cnblogs.com 關(guān)于這個(gè)問題,網(wǎng)上已經(jīng)有很多人討論過了,我先說說自己對(duì)這個(gè)問題的回答:加!(但非必須) 有些人寫代碼,懶得加分號(hào),除非是迫不得已才勉強(qiáng)放一...
摘要:最近在清理的未讀列表,看到了才知道了的,一種自動(dòng)插入分號(hào)的機(jī)制。這種行為被叫做自動(dòng)插入分號(hào),簡(jiǎn)稱。不過在省略分號(hào)的風(fēng)格中,這種解析特性會(huì)導(dǎo)致一些意外情況。規(guī)則標(biāo)準(zhǔn)定義的包括三條規(guī)則和兩條例外。規(guī)則一情況三就是為量身定做的。 TL;DR 最近在清理 Pocket 的未讀列表,看到了 An Open Letter to JavaScript Leaders Regarding Semico...
摘要:為什么要編寫可維護(hù)的軟件生命周期的成本消耗在了維護(hù)上。相等具有強(qiáng)制類型轉(zhuǎn)換的機(jī)制。檢測(cè)字符串檢測(cè)數(shù)字檢測(cè)布爾值檢測(cè)檢測(cè)引用值引用值也稱為對(duì)象,檢測(cè)某個(gè)引用值的類型的官方最好的方法是使用運(yùn)算符。 為什么要編寫可維護(hù)的javascript? 軟件生命周期80%的成本消耗在了維護(hù)上。 幾乎所有的軟件維護(hù)者都不是它的最初作者。 編碼規(guī)范提高了軟件的可讀性,它讓工程師能夠快速且充分地理解新的代...
摘要:為什么要編寫可維護(hù)的軟件生命周期的成本消耗在了維護(hù)上。相等具有強(qiáng)制類型轉(zhuǎn)換的機(jī)制。檢測(cè)字符串檢測(cè)數(shù)字檢測(cè)布爾值檢測(cè)檢測(cè)引用值引用值也稱為對(duì)象,檢測(cè)某個(gè)引用值的類型的官方最好的方法是使用運(yùn)算符。 為什么要編寫可維護(hù)的javascript? 軟件生命周期80%的成本消耗在了維護(hù)上。 幾乎所有的軟件維護(hù)者都不是它的最初作者。 編碼規(guī)范提高了軟件的可讀性,它讓工程師能夠快速且充分地理解新的代...
閱讀 2551·2023-04-25 19:47
閱讀 3394·2019-08-29 17:18
閱讀 861·2019-08-29 15:26
閱讀 3367·2019-08-29 14:17
閱讀 1144·2019-08-26 13:49
閱讀 3346·2019-08-26 13:22
閱讀 3033·2019-08-26 10:44
閱讀 2701·2019-08-23 16:51