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