成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

重學(xué)前端學(xué)習(xí)筆記(二十九)--JavaScript中要不要加分號(hào)?

charles_paul / 1195人閱讀

摘要:一自動(dòng)插入分號(hào)規(guī)則三條規(guī)則要有換行符,且下一個(gè)符號(hào)是不符合語(yǔ)法的,那么就嘗試插入分號(hào)。有換行符,且語(yǔ)法中規(guī)定此處不能有換行符,那么就自動(dòng)插入分號(hào)。源代碼結(jié)束處,不能形成完整的腳本或者模塊結(jié)構(gòu),那么就自動(dòng)插入分號(hào)。

筆記說(shuō)明
重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開(kāi)的一個(gè)專(zhuān)欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過(guò)程的一些要點(diǎn)筆記以及感悟,完整的可以加入winter的專(zhuān)欄學(xué)習(xí)【原文有winter的語(yǔ)音】,如有侵權(quán)請(qǐng)聯(lián)系我,郵箱:kaimo313@foxmail.com。
一、自動(dòng)插入分號(hào)規(guī)則 1.1、三條規(guī)則

要有換行符,且下一個(gè)符號(hào)是不符合語(yǔ)法的,那么就嘗試插入分號(hào)。

有換行符,且語(yǔ)法中規(guī)定此處不能有換行符,那么就自動(dòng)插入分號(hào)。

源代碼結(jié)束處,不能形成完整的腳本或者模塊結(jié)構(gòu),那么就自動(dòng)插入分號(hào)。

1.2、例子
//第一行的結(jié)尾處有換行符,接下來(lái) void 關(guān)鍵字接在 1 之后是不合法的,根據(jù)第一條規(guī)則,會(huì)在 void 前插入換行符。
let a = 1
void function(a){
    console.log(a);
}(a);
// 根據(jù)no LineTerminator here 規(guī)則, a 的后面就要插入一個(gè)分號(hào)。
var a = 1, b = 1, c = 1;
a
++
b
++
c
// a ==> 1  b,c ==> 2
1.3、例子 no LineTerminator here 規(guī)則展示
UpdateExpression[Yield, Await]:
    LeftHandSideExpression[?Yield, ?Await]
    LeftHandSideExpression[?Yield, ?Await][no LineTerminator here]++
    LeftHandSideExpression[?Yield, ?Await][no LineTerminator here]--
    ++UnaryExpression[?Yield, ?Await]
    --UnaryExpression[?Yield, ?Await]
1.4、IIFE(立即執(zhí)行的函數(shù)表達(dá)式)
(function(){
    console.log(1);
})()
(function(){
    console.log(2);
})()

// 不加分號(hào),輸出結(jié)果
// 1   Uncaught TypeError: (intermediate value)(...) is not a function

(function(){
    console.log(1);
})();
(function(){
    console.log(2);
})()

// 加分號(hào),輸出結(jié)果
// 1  2

// 關(guān)于這個(gè)問(wèn)題,遇到過(guò),當(dāng)時(shí)排查幾十分鐘 _(:3」∠)_ , 由于我之前的是有換行,還有注釋?zhuān)?dāng)時(shí)一直不理解,類(lèi)似下面這樣
(function(){
    console.log(1);
})()

// 處理。。。業(yè)務(wù)
(function(){
    console.log(2);
})()
1.5、帶換行符的注釋
// 帶換行符的注釋也被認(rèn)為是有換行符,return 也有 [no LineTerminator here] 規(guī)則的要求,這里會(huì)自動(dòng)插入分號(hào)
function f(){
    return/*
        This is a return value.
    */1;
}
f();

// undefined
二、no LineTerminator here 規(guī)則
no LineTerminator here 規(guī)則表示它所在的結(jié)構(gòu)中的這一位置不能插入換行符。

2.1、帶標(biāo)簽的 continue 語(yǔ)句
// 不能在 continue 后插入換行。
outer:for(var j = 0; j < 10; j++)
    for(var i = 0; i < j; i++)
        continue /*no LineTerminator here*/ outter
2.2、return
function f(){
    return /*no LineTerminator here*/1;
}
2.3、后自增、后自減運(yùn)算符
i/*no LineTerminator here*/++
i/*no LineTerminator here*/--
2.4、throw 和 Exception 之間
throw/*no LineTerminator here*/new Exception("error")
2.5、async 關(guān)鍵字
// 后面都不能插入換行符
async/*no LineTerminator here*/function f(){

}
const f = async/*no LineTerminator here*/x => x*x
2.6、箭頭函數(shù)
// 箭頭函數(shù)的箭頭前,也不能插入換行
const f = x/*no LineTerminator here*/=> x*x
2.7、yield
// yield 之后,不能插入換行
function *g(){
    var i = 0;
    while(true)
        yield/*no LineTerminator here*/i++;
}
三、不寫(xiě)分號(hào)需要注意的情況 3.1、以括號(hào)開(kāi)頭的語(yǔ)句
(function(a){
    console.log(a);
})()/* 這里沒(méi)有被自動(dòng)插入分號(hào) */
(function(a){
    console.log(a);
})()
3.2、以數(shù)組開(kāi)頭的語(yǔ)句
var a = [[]]/* 這里沒(méi)有被自動(dòng)插入分號(hào) */
[3, 2, 1, 0].forEach(e => console.log(e))
3.3、以正則表達(dá)式開(kāi)頭的語(yǔ)句
// 正則邊除號(hào)
var x = 1, g = {test:()=>0}, b = 1/* 這里沒(méi)有被自動(dòng)插入分號(hào) */
/(a)/g.test("abc")
console.log(RegExp.$1)
3.4、以 Template 開(kāi)頭的語(yǔ)句
// 沒(méi)有自動(dòng)插入分號(hào),函數(shù) f 被認(rèn)為跟 Template 一體的,會(huì)被執(zhí)行。
var f = function(){
  return "";
}
var g = f/* 這里沒(méi)有被自動(dòng)插入分號(hào) */
`Template`.match(/(a)/);
console.log(RegExp.$1)
個(gè)人總結(jié)

表示跟winter一樣,也是標(biāo)分號(hào)黨。。。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/104497.html

相關(guān)文章

  • 重學(xué)前端學(xué)習(xí)筆記十九)--JavaScript要不要加分號(hào)?

    摘要:一自動(dòng)插入分號(hào)規(guī)則三條規(guī)則要有換行符,且下一個(gè)符號(hào)是不符合語(yǔ)法的,那么就嘗試插入分號(hào)。有換行符,且語(yǔ)法中規(guī)定此處不能有換行符,那么就自動(dòng)插入分號(hào)。源代碼結(jié)束處,不能形成完整的腳本或者模塊結(jié)構(gòu),那么就自動(dòng)插入分號(hào)。 筆記說(shuō)明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開(kāi)的一個(gè)專(zhuān)欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過(guò)程的一些要點(diǎn)筆記以及感悟,完整...

    Sourcelink 評(píng)論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記十九)--JavaScript要不要加分號(hào)?

    摘要:一自動(dòng)插入分號(hào)規(guī)則三條規(guī)則要有換行符,且下一個(gè)符號(hào)是不符合語(yǔ)法的,那么就嘗試插入分號(hào)。有換行符,且語(yǔ)法中規(guī)定此處不能有換行符,那么就自動(dòng)插入分號(hào)。源代碼結(jié)束處,不能形成完整的腳本或者模塊結(jié)構(gòu),那么就自動(dòng)插入分號(hào)。 筆記說(shuō)明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開(kāi)的一個(gè)專(zhuān)欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過(guò)程的一些要點(diǎn)筆記以及感悟,完整...

    whatsns 評(píng)論0 收藏0
  • 重學(xué)前端學(xué)習(xí)筆記二十七)--JavaScript的詞法

    摘要:模板語(yǔ)法四種詞法定義二空白符號(hào)空白符號(hào)分類(lèi)或稱(chēng)是,是縮進(jìn)符,字符串中寫(xiě)的。注意換行符會(huì)影響的兩個(gè)重要語(yǔ)法特性自動(dòng)插入分號(hào)和規(guī)則。 筆記說(shuō)明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開(kāi)的一個(gè)專(zhuān)欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過(guò)程的一些要點(diǎn)筆記以及感悟,完整的可以加入winter的專(zhuān)欄學(xué)習(xí)【原文有winter的語(yǔ)音】,如有侵權(quán)請(qǐng)聯(lián)系我,郵箱...

    jayzou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<