最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

JavaScript中的可選分號(hào)

2023-08-19 07:59 作者:曉楓Motivation  | 我要投稿

與許多編程語(yǔ)言一樣,JavaScript使用分號(hào)(;)來(lái)分隔語(yǔ)句。這對(duì)于保持代碼清晰非常重要:沒(méi)有分號(hào),一個(gè)語(yǔ)句的末尾可能會(huì)被解釋為另一個(gè)語(yǔ)句的開(kāi)頭,反之亦然。在JavaScript中,如果兩個(gè)語(yǔ)句寫(xiě)在不同的行上,通??梢允÷运鼈冎g的分號(hào)。此外,在程序的末尾,如果下一個(gè)標(biāo)記是右花括號(hào)},您可以省略分號(hào)。許多JavaScript程序員使用分號(hào)來(lái)明確表示語(yǔ)句的結(jié)束,即使它們并不嚴(yán)格必要。另一種風(fēng)格是盡量省略分號(hào),只在必要的情況下使用它們。無(wú)論使用哪種風(fēng)格,了解JavaScript中可選分號(hào)的一些細(xì)節(jié)很重要。

(程序員的軟技能:ke.qq.com/course/6034346)

考慮以下代碼。由于這兩個(gè)語(yǔ)句位于不同的行上,第一個(gè)分號(hào)可以省略:

然而,像這樣寫(xiě)需要分號(hào):

請(qǐng)注意,JavaScript并不將每個(gè)換行符都視為分號(hào);只有在無(wú)法在不插入分號(hào)的情況下解析代碼時(shí),它才會(huì)這樣做。更準(zhǔn)確地說(shuō)(除了后面討論的三個(gè)例外情況),JavaScript僅在下一個(gè)非空格字符無(wú)法解釋為當(dāng)前語(yǔ)句的一部分時(shí),將換行符視為分號(hào)??匆幌逻@段代碼:

上面的代碼被解釋為:

第一個(gè)換行符被視為分號(hào),是因?yàn)槿绻麤](méi)有它,JavaScript無(wú)法解析代碼let a a。第二個(gè)a被視為獨(dú)立的語(yǔ)句,但JavaScript不會(huì)將第二個(gè)換行符視為分號(hào),因?yàn)樗梢岳^續(xù)解析更長(zhǎng)的語(yǔ)句a = 3;。

這些語(yǔ)句終止規(guī)則可能會(huì)導(dǎo)致意外情況。以下代碼可能看起來(lái)是兩個(gè)位于不同行上的語(yǔ)句:

然而,第二行的括號(hào)可以被解釋為從第一行調(diào)用f(a+b)的函數(shù)調(diào)用。所以JavaScript將這些行解釋為:

這可能不是作者的意圖。為確保代碼被解釋為兩個(gè)獨(dú)立的語(yǔ)句,必須在這里顯式添加分號(hào)。

通常,如果語(yǔ)句以(、[、/、+或-開(kāi)頭,它可能被解釋為前一個(gè)語(yǔ)句的延續(xù)。實(shí)際上,以/、+或-開(kāi)頭的語(yǔ)句非常少見(jiàn),但以(和[開(kāi)頭的語(yǔ)句并不少見(jiàn),尤其是在某些JavaScript編碼風(fēng)格中。一些程序員喜歡在所有這些語(yǔ)句之前防御性地添加分號(hào)。這樣,即使修改了前面的語(yǔ)句并刪除了末尾的分號(hào),也不會(huì)影響當(dāng)前語(yǔ)句:

JavaScript有三個(gè)例外,涉及到當(dāng)無(wú)法將代碼解釋為連續(xù)語(yǔ)句時(shí),它如何將換行符視為分號(hào)。第一個(gè)例外涉及return、throw、yield、break和continue語(yǔ)句。這些語(yǔ)句通常是獨(dú)立的,但有時(shí)可以跟隨標(biāo)識(shí)符或表達(dá)式。如果其中任何一個(gè)單詞后面跟著一個(gè)換行符(沒(méi)有其他標(biāo)記在中間),JavaScript將該換行符視為分號(hào)。例如,如果寫(xiě)入:

JavaScript會(huì)假定您的意思是:

但您的意圖可能是:

這意味著您絕不能在關(guān)鍵字(如return、break或continue)和其后的表達(dá)式之間插入換行符。如果這樣做,調(diào)試錯(cuò)誤可能會(huì)變得具有挑戰(zhàn)性,因?yàn)閱?wèn)題并不明顯。

第二個(gè)例外涉及++和--運(yùn)算符。這些運(yùn)算符可以是前綴或后綴。如果要將它們用作后綴運(yùn)算符,它們必須與應(yīng)用它們的表達(dá)式在同一行上。第三個(gè)例外涉及使用簡(jiǎn)潔的“箭頭”語(yǔ)法定義的函數(shù):箭頭=>必須與參數(shù)列表在同一行上。

(程序員的軟技能:ke.qq.com/course/6034346)


JavaScript中的可選分號(hào)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
泰州市| 连城县| 清流县| 鲜城| 浮梁县| 东明县| 宜阳县| 伽师县| 历史| 玉山县| 林口县| 汾西县| 正定县| 吴堡县| 葫芦岛市| 丰宁| 云安县| 抚州市| 大同县| 昭觉县| 濮阳县| 苗栗市| 紫金县| 莱州市| 正镶白旗| 施秉县| 旌德县| 凉山| 宜良县| 海宁市| 浪卡子县| 诏安县| 库车县| 吉安县| 夏河县| 中牟县| 宝兴县| 论坛| 大田县| 舟山市| 翁源县|