gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

javascript要不要加分號

JavaScript中的分號是可選的,加不加分號主要是個代碼風格問題,但是不要一會加一會不加。通常,如果語句以“(”、“[”、“/”、“+”、“-”開頭時,有可能被解釋為上一行語句的一部分;此時可以在行首防御性的加上分號。

javascript要不要加分號

前端(vue)入門到精通課程:進入學習
API 文檔、設計、調(diào)試、自動化測試一體化協(xié)作工具:點擊使用

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

JavaScript 中的分號是可選的,加不加分號主要是個代碼風格問題。一種風格是使用分號明確結束語句,即便這些分號不是必需的;另一種風格是盡可能的不加分號,只在必要的情況才加。

javascript要不要加分號

注:分號可以加也可以不加,但是不要一會加一會不加。

代碼中分號的作用

分號的主要作用是:作為語句的斷言(EOS)用于結束一個程序語句,目的是讓解析器正確解析程序。在很多 C-Style 語言里,用分號明確結束一行語句,主要是為了降低語言編譯器開發(fā)的成本。但是現(xiàn)代編譯器都足夠聰明了,可以很好的處理好多行語句。很多語言都不需要明確使用分號結尾如:Go、Scala、Ruby、Python、Swift、Groovy 等等。

雖然 JavaScript 是 C-like 語言,但它是有別于 C、Java 的,在 JavaScript 中分號也是可選的,它自動分號插入機制 Auto Semicolon Insertion (ASI)。

JavaScript 自動分號插入機制

JavaScript 有著自動分號插入的機制(Automatic Semicolon Insertion),簡稱 ASI。在ECMA-262 – Automatic Semicolon Insertion中有關 Automatic Semicolon Insertion 的明確說明:

  • 從左到右解析程序,當遇到一個不符合任何文法產(chǎn)生式的 token(offending token),那么只要滿足下面條件之一就在違規(guī) token 前面自動插入分號。

至少一個換行符(LineTerminator)分割了違規(guī) token 和前一個 token。

違規(guī) token 是 }。

  • 從左到右解析程序,tokens 輸入流已經(jīng)結束,當解析器無法將輸入 token 流解析成單個完整 ECMAScript 程序 ,那么就在輸入流的結束位置自動插入分號。

  • 從左到右解析程序,遇到一個某些文法產(chǎn)生式允許的 token,但是它是受限操作(Restricted Productions),當至少一個換行符分割了受限的 token 和前一個 token,那么就在受限 token 前面自動插入分號。

    然而,上述規(guī)則有一個附加的優(yōu)先條件:如果插入分號后解析結果是空語句,或如果插入分號后它成為 for 語句頭部的兩個分號之一,那么不會自動插入分號。

注:以上說明翻譯較為別扭可以多讀幾遍或閱讀英文原文 ECMA-262 – Automatic Semicolon Insertion

分號自動插入的情況

簡要歸納下,自動分號插入以換行為基礎,解析器會盡量將新行并入當前行,當且僅當符合 ASI 規(guī)則時才會將新行視為獨立的語句

主要有以下自動插入規(guī)則:

  • 當新的一行并入當前行將構成非法語句不能正確解析時,將自動插入分號

  • 當新行以}開頭時,即代碼塊的結束位置,將自動插入分號

  • 當以return語句結束時,在行末自動插入分號

  • 當以break語句結束時,在行末自動插入分號

  • 當以throw語句結束時,在行末自動插入分號

  • 當以continue語句結束時,在行末自動插入分號

  • 當以 ES6 的 yield 語句結尾時,在行末自動插入分號

  • ++、-- 后綴表達式作為新行的開始,在行首自動插入分號

  • 源代碼文件末尾自動插入號

如上所示,如果沒加分號,運行這段代碼這段代碼將報錯。

不能省略分號的情況

通常,如果語句以(、[、 /、+、-開頭時,就有可能被解釋為上一行語句的一部分。實際中以/、+、-開頭的語句很少。但是以(、[開頭的語句則很常見,通常我可以在行首防御性的加上分號。

前面,我們了解分號的自動插入,現(xiàn)在我們來看一些示例

let hey = 'hey' ['liu','liuxing'].forEach(console.log)
登錄后復制

思考一秒鐘上面的結果是什么?運行這段代碼會拋出

Uncaught TypeError: Cannot read property 'forEach' of undefined
登錄后復制

基于規(guī)則 1 上面代碼將會被解析成如下代碼

let hey = 'hey'['liu','liuxing'].forEach(console.log)
登錄后復制

可以看出,使用[開頭的語句,前面沒有分號,很可能導致出錯。

再來看一個(開頭的語句的示例代碼

const a = 1 const b = 2 const c = a + b (a + b).toString()
登錄后復制

你會以為上面的代碼結果是“3”嗎?但是實際上它會拋出錯誤b is not a function,因為根據(jù) ASI 規(guī)則,它會被解析成如下代碼:

const a = 1;const b = 2;const c = a + b(a + b).toString()
登錄后復制

我們就不一一介紹/, +, - 作為語句開頭的情況了,這種情況比較少,大家可以自己試試。只需要記住語句以(、[、 /、+、-開頭時,語句前需要加上分號即可!

下面再在看看使用return的情況,

(() => {   return   {     name: 'Liu Xing'   } })()
登錄后復制

你的期待值是不是返回一個帶有 name 的對象,但是它卻返回了undefined。這是 ASI 自動在return給加上了分號。在這兒就得正確的換行以確保代碼正確運行。我們可以看出除了正確的的分號,我們還需要正確合理的換行來使代碼結構更為清晰。

總結

我們了解了 JavaScript 的分號自動插入機制,知道了 JavaScript 什么時候會自動加入分號,在([、 /、+、-開頭時需要我們準確的加上分號。Automatic Semicolon Insertion 機制為我們提供了兩種選擇,加還是不加分號?完全看你或你的團隊的喜好了,現(xiàn)在我們也有prettier、Eslint 等工具來自動統(tǒng)一風格。

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
一女被多男玩喷潮视频| 国产无套内射久久久国产| 国产男女无遮挡| 免费观看亚洲视频| 日本久久高清视频| 可以免费看的黄色网址| 日本高清一区二区视频| 久久久久久久久久一区| 午夜激情视频网| 免费国产成人看片在线| 成人性做爰片免费视频| 久久精品久久99| 成人短视频在线看| 久久av喷吹av高潮av| 18禁裸男晨勃露j毛免费观看| 4444在线观看| 国产69精品久久久久999小说| 免费在线观看亚洲视频| 蜜臀久久99精品久久久酒店新书| 91小视频网站| 做爰高潮hd色即是空| 精品国偷自产一区二区三区| 黄色免费视频大全| 不卡的在线视频| 欧美亚洲黄色片| 男人插女人下面免费视频| 性生生活大片免费看视频| 免费看欧美一级片| 浓精h攵女乱爱av| 天天干天天色天天爽| 免费高清在线观看免费| 亚洲一区二区三区四区精品| 成人av在线播放观看| 亚洲精品一二三四五区| 亚洲av首页在线| wwwwww.色| a级黄色小视频| 中文字幕成人在线视频| 日韩精品在线中文字幕| 中文字幕第17页| 无码人妻丰满熟妇区五十路百度| 国内av免费观看| 韩国日本在线视频| 欧美成人精品免费| 一级黄色录像在线观看| 欧美 日韩 国产在线观看| 黄色免费高清视频| 午夜久久福利视频| 久久久久久久久久久久久久国产| 三级网在线观看| 自拍偷拍21p| 国产成人精品无码播放| 欧美精品卡一卡二| 国产精品一二三在线观看| 亚洲美女爱爱视频| 激情 小说 亚洲 图片: 伦| 日韩五码在线观看| av电影一区二区三区| 性生活免费在线观看| 91蝌蚪视频在线观看| 欧美一级片中文字幕| 99久久激情视频| 国产午夜福利在线播放| 成人免费观看cn| 欧美日韩二三区| 青青青国产在线观看| 熟女少妇在线视频播放| 欧美深夜福利视频| www.com毛片| 人妻熟女一二三区夜夜爱| 丰满爆乳一区二区三区| 久草资源站在线观看| 情侣黄网站免费看| 我看黄色一级片| 国产高清av片| 欧美日韩中文字幕在线播放| 无码人妻aⅴ一区二区三区日本| 天堂av在线中文| 日韩在线视频在线| 色欲色香天天天综合网www| 男人添女人下面高潮视频| 四虎永久在线精品无码视频| 日本成人黄色网| 波多野结衣免费观看| 国产女主播自拍| 中文字幕欧美人妻精品一区| 污视频免费在线观看网站| 国产精品jizz在线观看老狼| 老子影院午夜伦不卡大全| 成熟老妇女视频| 免费看啪啪网站| 免费无码不卡视频在线观看| 欧美日韩中文不卡| japanese在线播放| 毛片av免费在线观看| 美国av在线播放| 精品中文字幕av| 男女污污视频网站| 国产97在线 | 亚洲| 午夜视频在线网站| 国产淫片免费看| 国产九九九视频| 久久精品免费网站| r级无码视频在线观看| 人人干人人干人人| 国产av天堂无码一区二区三区| www午夜视频| 精品99在线视频| 一卡二卡三卡视频| 日本免费在线视频观看| 无遮挡又爽又刺激的视频| 日本成人在线不卡| 日韩视频在线免费播放| 黄色影院一级片| 91成人综合网| 国产女主播av| 一级日本黄色片| 成年人三级黄色片| 日韩 欧美 高清| 欧美男女爱爱视频| 91.com在线| 日韩久久久久久久久久久久| 91看片破解版| 五月花丁香婷婷| 九色porny自拍| 九色porny自拍| 8x8x成人免费视频| 日韩av.com| theporn国产精品| 天天干天天av| 99精品视频国产| 五月天六月丁香| 伊人色在线视频| 黄色一级片免费播放| 中文字幕一区二区在线观看视频 | 日本成人性视频| 亚洲精品综合在线观看| 九九热免费在线观看| www.国产视频.com| 99精品视频网站| 欧美与动交zoz0z| 男人添女人下部视频免费| 污污污污污污www网站免费| 麻豆md0077饥渴少妇| 青春草国产视频| 老司机激情视频| 91九色在线观看视频| 国产a级片免费观看| 国产精品区在线| 美女黄色片网站| 缅甸午夜性猛交xxxx| 亚洲xxxx2d动漫1| www.51色.com| 六月婷婷在线视频| 人人干人人干人人| 日本丰满大乳奶| 69堂免费视频| 久久综合在线观看| 成熟丰满熟妇高潮xxxxx视频| 国产美女网站在线观看| 污片在线免费看| 欧美美女黄色网| 国产一级特黄a大片免费| 中文字幕av导航| 北条麻妃在线一区| 免费cad大片在线观看| 欧美少妇性生活视频| www.黄色网址.com| 日韩肉感妇bbwbbwbbw| 久久久国内精品| 日本www.色| 日韩欧美视频网站| 99re99热| 国产精品区在线| 男女午夜激情视频| 污污污污污污www网站免费| 美女网站色免费| 免费观看精品视频| 成人精品视频在线播放| 国内av一区二区| 九九热在线免费| 91九色在线观看视频| 国产日韩视频在线播放| 中文字幕第88页| 成人在线免费观看av| 国产女教师bbwbbwbbw| 性欧美在线视频| 欧美wwwwwww| 五月天婷婷激情视频| 欧美在线观看成人| 人人妻人人添人人爽欧美一区| 毛片在线视频观看| 日本一二三区视频在线| www.亚洲自拍| 欧美专区第二页| 精品日韩在线播放| 国产欧美自拍视频| gogogo免费高清日本写真| 国产精品一区在线免费观看| 色乱码一区二区三区熟女|