js不加分號(hào)黨進(jìn)來(lái),我來(lái)教你做人

前言

js語(yǔ)句末尾到底要不要加分號(hào)埠通,早已形成了加分號(hào)黨和不加分號(hào)黨赎离,而且吵得不可開(kāi)交,各有各的道理端辱,但是梁剔,你們都沒(méi)有說(shuō)到點(diǎn)上。如果你是不加分號(hào)黨舞蔽,來(lái)來(lái)來(lái)荣病,先來(lái)執(zhí)行幾條語(yǔ)句。

案例

1渗柿,[前面不加分號(hào)

將下方代碼拷貝到Chrome瀏覽器的控制臺(tái)運(yùn)行:

console.log('任意字符')
[1,2].forEach(v=>v);

得到

任意字符
Uncaught TypeError: Cannot read property '2' of undefined

2. (前面不加分號(hào)

試運(yùn)行:

console.log('任意字符')
(1 + 2) === 3 ? 'xx' : 'oo'

得到:

任意字符
Uncaught TypeError: console.log(...) is not a function

3. +前面不加分號(hào)

console.log('任意字符')
+1

得到:

任意字符
NaN

4. -前面不加分號(hào)

console.log('任意字符')
-1

得到:

任意字符
NaN

5. /前面不加分號(hào)

console.log('任意字符')
/1/.test('1') ? 'xx' : 'oo'

得到:

Uncaught SyntaxError: Unexpected token .

什么鬼个盆?每一句都是合法語(yǔ)句,寫(xiě)在一起就報(bào)錯(cuò)朵栖?颊亮!

如果試試給兩句中間敲空行呢?還是報(bào)錯(cuò)T山Α终惑!

怎么回事?

解釋

瀏覽器內(nèi)置的JS編譯器有分號(hào)推斷能力门扇,不加分號(hào)黨也正是據(jù)此堅(jiān)稱無(wú)需加分號(hào)雹有,但是,編譯器又有一個(gè)規(guī)定臼寄,就是總是優(yōu)先將換行符前后的符號(hào)流當(dāng)作一條語(yǔ)句解析霸奕。所以在JS編譯器眼里:

console.log('任意字符')
[1,2].forEach(v=>v)

相當(dāng)于:

console.log('任意字符')[1,2].forEach(v=>v)

這時(shí)候,console.log('任意字符')被當(dāng)做一個(gè)函數(shù)執(zhí)行語(yǔ)句脯厨,打印任意字符铅祸,但返回undefined,接著把undefined當(dāng)做有屬性的值合武,求undefined的屬性為2的值。為什么是2呢涡扼?因?yàn)?code>1,2會(huì)計(jì)算得到2稼跳。undefined當(dāng)然沒(méi)有鍵名為2的值,所以會(huì)報(bào)錯(cuò)Uncaught TypeError: Cannot read property '2' of undefined吃沪。

其他幾個(gè)例子也是這個(gè)道理汤善。

括號(hào)場(chǎng)景下,會(huì)將前面的部分當(dāng)做函數(shù),前面當(dāng)然不是函數(shù)红淡。

加減號(hào)場(chǎng)景下不狮,會(huì)讓undefined去加減1,當(dāng)然得到NaN在旱。

上面的都是運(yùn)行時(shí)錯(cuò)粗摇零,而斜杠場(chǎng)景下,直接是語(yǔ)法錯(cuò)誤桶蝎。

現(xiàn)在你明白為什么不要做不加分號(hào)黨了吧驻仅?

可能你還會(huì)說(shuō),這幾種場(chǎng)景出現(xiàn)的概率很低登渣,那我也沒(méi)啥可說(shuō)的了噪服,“又不是不能用”總能終結(jié)討論。

總結(jié)

總之胜茧,加分號(hào)除了“要記得敲分號(hào)”之外粘优,沒(méi)有任何副作用,而不加分號(hào)呻顽,閱讀代碼總是要費(fèi)力雹顺,比如:

      api
.a({
          ...this.queryParams,
        })
        .b((response) => {
          this.list = response.data.list;
          this.total = response.data.total;
          this.loading = false;
        })
.c({
          ...this.queryParams,
        })
        .d((response) => {
          this.list = response.data.list;
          this.total = response.data.total;
          this.loading = false;
        });
      api
        .a({
          ...this.queryParams,
        })
.b((response) => {
          this.list = response.data.list;
          this.total = response.data.total;
          this.loading = false;
        })
.c({
          ...this.queryParams,
        })
        .d((response) => {
          this.list = response.data.list;
          this.total = response.data.total;
          this.loading = false;
        });

假設(shè)有這么一套代碼,各種then鏈芬位,各種以})結(jié)尾的語(yǔ)句无拗,如果不加分號(hào),你看的清這是幾條語(yǔ)句么昧碉?

題外篇

當(dāng)然了英染,現(xiàn)在前端開(kāi)發(fā)都會(huì)上ESLint,雖然沒(méi)有測(cè)試過(guò)被饿,但我相信四康,即便你是不加分號(hào)黨,它也會(huì)智能的在上述符號(hào)前面加上分號(hào)(我真的沒(méi)有測(cè)試過(guò)狭握,如果事實(shí)是ESLint做不到闪金,呵呵,真是天不助你們了)论颅。其實(shí)分號(hào)更多的意義還是維護(hù)容易哎垦,代碼能跑通真的不是一切。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末恃疯,一起剝皮案震驚了整個(gè)濱河市漏设,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌今妄,老刑警劉巖郑口,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸳碧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡犬性,警方通過(guò)查閱死者的電腦和手機(jī)瞻离,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乒裆,“玉大人套利,你說(shuō)我怎么就攤上這事「淄茫” “怎么了日裙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)惰蜜。 經(jīng)常有香客問(wèn)我昂拂,道長(zhǎng),這世上最難降的妖魔是什么抛猖? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任格侯,我火速辦了婚禮,結(jié)果婚禮上财著,老公的妹妹穿的比我還像新娘联四。我一直安慰自己,他們只是感情好撑教,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布朝墩。 她就那樣靜靜地躺著,像睡著了一般伟姐。 火紅的嫁衣襯著肌膚如雪收苏。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天愤兵,我揣著相機(jī)與錄音鹿霸,去河邊找鬼。 笑死秆乳,一個(gè)胖子當(dāng)著我的面吹牛懦鼠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播屹堰,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肛冶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了扯键?” 一聲冷哼從身側(cè)響起淑趾,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎忧陪,沒(méi)想到半個(gè)月后扣泊,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嘶摊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年延蟹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叶堆。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡阱飘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出虱颗,到底是詐尸還是另有隱情沥匈,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布忘渔,位于F島的核電站高帖,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏畦粮。R本人自食惡果不足惜散址,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宣赔。 院中可真熱鬧预麸,春花似錦、人聲如沸儒将。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钩蚊。三九已至贡翘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間两疚,已是汗流浹背床估。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诱渤,地道東北人丐巫。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像勺美,于是被迫代替她去往敵國(guó)和親递胧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 第2章 基本語(yǔ)法 2.1 概述 基本句法和變量 語(yǔ)句 JavaScript程序的執(zhí)行單位為行(line)赡茸,也就是一...
    悟名先生閱讀 4,131評(píng)論 0 13
  • 前言 先說(shuō)明我并沒(méi)有要大家都來(lái)不加分號(hào)占卧,而是回答"為什么可以不加分號(hào)"遗菠,或是"為何分號(hào)是選項(xiàng)可有可無(wú)联喘?",或是"分...
    小白_pk閱讀 3,665評(píng)論 1 3
  • 教程 https://wangdoc.com/javascript/types/general.html 1 概述...
    智勇雙全的小六閱讀 572評(píng)論 0 0
  • 前言 無(wú)論哪個(gè)團(tuán)隊(duì)辙纬,代碼風(fēng)格統(tǒng)一的爭(zhēng)論是一個(gè)無(wú)解的話題豁遭,每次爭(zhēng)論起來(lái),各有各理贺拣,或執(zhí)著或偏激或喪心病狂拍桌憤然離去...
    destiny0904閱讀 1,226評(píng)論 0 1
  • 久違的晴天蓖谢,家長(zhǎng)會(huì)。 家長(zhǎng)大會(huì)開(kāi)好到教室時(shí)譬涡,離放學(xué)已經(jīng)沒(méi)多少時(shí)間了闪幽。班主任說(shuō)已經(jīng)安排了三個(gè)家長(zhǎng)分享經(jīng)驗(yàn)。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,513評(píng)論 16 22