97免费在线观看视频 I 午夜夫妻视频 I 久久久久久网站 I 天堂网男人 I 欧美大波大乳人奶 I 丝袜 中出 制服 人妻 美腿 I 窝窝午夜理论片影院 I 日韩在线伦理电影 I 韩国特级毛片 I 亚洲欧美另类激情 I 在线成人日韩 I 麻豆视频免费看 I 黄色生活毛片 I 极品一线天小嫩嫩真紧 I 色久天堂 I 久久久久久黄色片 I 林智妍三级露全乳电影视频 I 大肉大捧一进一出好爽视频 I 空乘伦理hd I 少妇口述与子做过爱 I 成人免费影片 I 国产精品国内免费一区二区三区 I 日韩制服一区 I 青青草福利在线 I 日本在线观看不卡视频 I 婷婷六月综合亚洲 I 国产又粗又黄又硬 I 美女扒开屁股让男子桶爽 I 欧美性午夜视频观看 I 欧美狠狠插 I 亚洲福利在线观看视频 I 无码抽搐高潮喷水流白浆 I 亚洲欧美国产日韩色伦 I 你懂的视频网站在线观看 I www.蜜桃视频在线观看 I 日本无码人妻精品一区二区蜜桃 I 久久中文字幕人妻丝袜 I 碰草在线视频 I 日韩精品成人av网站

js中的分號

2020/11/12 12:16:23   閱讀:3612    發布者:3612
js中語句末尾可以不加分號,

很多時候在做練習或寫幾個頁面時,我都是不會加的。雖然知道加了會好一點。但就是覺得很敲一句就要多按一次分號鍵(;)來加分號,而不加也不怎么樣,然后就不想加了。

也聽說在對js壓縮于,會自動給語句加分號。很多插件的js的首句前面都會有個;分號,是用來避免當如果合并如下js文件如以下情況時,解釋器可能會出錯。

//代碼塊A

var a = 10;
var b = 5;

var c = a + b

//代碼塊B

('x' + 'y').toString()
 報錯; 在('x' + 'y').toString() 前面加上分號就好了。所以,分號是一件多么重要的事情。



var x = 'javascript'; //javascript
x = "hello"; // hello
x = 555; //555
x = null; //null
x = a; //a is not defined
x = true; //true
對于數字是直接賦值的,因為它沒有多樣性,數字就是數字。但是對于值是英文的情況就很難區分了,因為在編程語言中,英文既可能是字符串,也可能是引用的另外一個變量。因此如何區分變量和字符串就顯得格外重要,編程語言常常將字符串用引號括起來,從而達到區分變量和字符串的作用。有些語言比如java,它們還區分單引號和雙引號,單引號括起來的是一個字符,而雙引號括起來的才是字符串。但javascript并不區分字符和字符串,而是把它們都當作字符串,因此在javascript中單引號和雙引號并沒有什么區別。

雖然通過引號可以用來區分變量和字符串,但值往往也可能是一個關鍵字,比如上面那段代碼我將x賦值為null,那么這些編程語言又是如何區分變量和關鍵字的呢?
null = 123;
console.log(null); //Uncaught ReferenceError: Invalid left-hand side in assignment
undefined = 456;
console.log(undefined); //undefined
以上我給null和undefined分別賦給了另外一個值,其結果,給null賦值報錯了,給undefined賦值雖然沒有報錯,但也沒有成功。也許對于null和undefined來說,它們就是值。而變量則是尋找值。我們說javascript是如何區分變量和關鍵字,最終或許就變成了javascript是如何區分變量和值的。
在一些JS插件中,經常會看到類似下面這樣的一行代碼

;(function(){
 .........
})();
在代碼的最前面有一個分號,那么這個分號是干什么用的呢?

我們知道一個分號代表了一段代碼的結束,但問題是javascript允許你不寫分號,這樣就出現了一個問題,代碼的結束與否不是你來決定的而是由程序來決定的,而程序也不是萬能的,往往它只是走的某個規則,而如果你寫的這段代碼和它的規則不符,最終的結果就有些不如人意了。

以下是javascript對省略分號的解析規則

var a
=
1 + 2
console.log(a) //3
javascript解析器會將以上代碼解析成

var a = 1 + 2;
console.log(a); //3
如果javascript不給2后面添加分號將會無法解析下去,也可以這么說,如果遇到無法解析下去則javascript解析器會嘗試給其添加一個分號,如果還是解析不了則報錯。又比如下面這一段代碼

var a = 10;
var b = 5;

var c = a + b
(a + b).toString()

// b is not a function
它說b不是一個函數,也就是說以上這段代碼很有可能解析成了下面這段代碼

var a = 10;
var b = 5;

var c = a + b(a + b).toString();
它把()當成了函數調用。也可以理解為javascript解析器會盡可能多的去匹配,但也有幾個例外,它們是retrun、break、continue,當javascript解析器解析到這幾個關鍵字時,它不會把換行后的內容當成是自身的,而是直接在換行之前添加分號,不妨看看下面這段代碼

function test(){
  return 
  123;
}

console.log(test()); //undefined
它并沒有返回123,也就是說它直接在retrun后面加了分號。
因此不要把分號單單認為只是用來結束某段代碼,它還可以用來隔離某段代碼和別人劃清界限。
主站蜘蛛池模板: av永久免费网站在线观看 | 农村乱视频一区二区三区 | 亚洲国产精品无码av | 国产成人精品久久久 | 成人欧美精品 | 四虎国产精品永久在线下载 | 久热草 | 亚洲成人在线免费观看 | 日韩成人无码一区二区三区 | 欧美 亚洲 日韩 中文2019 | 午夜dv内射一区二区 | 开心激情综合 | 国内熟妇人妻色无码视频在线 | 粗大的内捧猛烈进出少妇 | 深夜网站在线 | 国产v欧美v日本v精品按摩 | 最新的国产成人精品2020 | 日韩在线免费高清视频 | a资源在线观看 | 欧美h在线观看 | 国产乱码一区二区 | 曰批免费视频播放免费直播 | 另类天堂网不卡另类系列 | 国产目拍亚洲精品二区 | 国产福利萌白酱精品一区 | 在线播放五十路熟妇 | 久久66热人妻偷产精品 | 久久精品黄色片 | 免费观看潮喷到高潮中文字幕 | 欧美性猛交乱大交xxxxx | 欧美人与按摩师xxxx | 啊~我是sao货快cao我视频 | 夜夜高潮夜夜爽夜夜爱 | 久久精品囯产精品亚洲 | 亚洲国产精品久久久久秋霞小说 | 少妇把腿扒开让我添 | 艳妇臀荡乳欲伦交换h在线观看 | 91看片淫黄大片91桃色 | 777午夜精品免费观看 | 99久热re在线精品99 6热视频 | 又黄又爽的男女配种视频 | 91网在线 | 私色综合网 | 国产av亚洲精品ai换脸电影 | 孕妇性猛交xxxxxhd | 国产性―交一乱―色―情人 | 亚洲小说春色综合另类 | 女同亚洲精品一区二区三 | 久久精品人人做人人爽97 | 一区二区三区播放 | 未满十八18禁止免费无码网站 | 俄罗斯大胆少妇bbw 亚欧成人中文字幕一区 | 国产成人久久精品激情 | 日本免费不卡的一区视频 | 综合在线视频 | 人妻无码中文字幕一区二区三区 | 亚洲精品成人片在线观看精品字幕 | 欧美成人aaaaⅴ片在线看 | 国产肥白大熟妇bbbb | 激情小说图片视频 | 少妇精油按摩av无码中字 | 欧美成人精品高清在线观看 | 日本伊人色| 欧美国产精品日韩在线 | 丁香五精品蜜臀久久久久99网站 | 77777亚洲午夜久久多喷 | 国产一级视屏 | 国产精品夜夜春夜夜爽久久 | 国产欧美日韩精品a在线观看 | 日韩精品在线视频免费观看 | 日韩中文亚洲欧美视频二 | 亚洲xx在线| 99精品欧美一区二区三区视频 | 欧美激情在线一区二区 | 一区二区三区四区在线 | 中国 | 亚洲30p | 色播在线精品一区二区三区四区 | 亚洲卡一卡二新区入口将开 | 男受被做哭激烈娇喘gv视频 | 人人爽人人舔 | 欧美人与按摩师xxxx | 国产又色又爽又黄的 | 精品人妻系列无码人妻免费视频 | 国产精品欧美一区喷水 | 久久中文字幕乱码久久午夜 | 中文字幕乱码中文乱码51精品 | 国产精品成人一区二区三区视频 | 亚洲国产精品无码观看久久 | 99热黄色| 天天操天天射天天爱 | 亚洲欧美中文字幕国产 | 欧美国产成人精品二区 | 人人超人人超碰超国产 | 欧美丰满熟妇bbbbbb | 国产小视频网站 | 激情爆乳一区二区三区 | 精品一区二区三区在线观看 | 国产成人夜色高潮福利影视 | 中文字幕第22页 |