亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解JavaScript語法對{}處理的坑爹之處

2019-11-20 14:54:40
字體:
來源:轉載
供稿:網友

JavaScript的語法有多坑,算是眾人皆知了。

先來上張圖

代碼如下:

復制代碼 代碼如下:

{} + [];    // 0
[] + {};    // "[object Object]"
{} + [] == [] + {};    // false
({} + [] == [] + {});    // true

這么蛋疼的語法坑估計也只有 JavaScript 這樣的奇葩才有。

相信對于絕大部分不研究 JavaScript 編譯器的童鞋,根本無法理解。(至少我也是覺得不可思議)

后來專門去度娘了一下,才有點恍然大悟!

下面,我們先看看這個代碼:

復制代碼 代碼如下:

{
    a: 1
}

相信大部分童鞋,第一眼都會認為這是一個 對象直接量 。

那這個代碼呢?

復制代碼 代碼如下:

{
    var a = 1;
}

瀏覽器會提示語法錯誤嗎?

顯然不會!細想一下,我們就會明白到,這是一個 語句塊 。

復制代碼 代碼如下:

if (isNumber) {
    var a = 1;
}


說到這里,敏銳的你可能已經發現:JavaScript 中以 { 開頭,會存在二義性。

那 JavaScript 的編譯器是怎么處理這個二義性的?

    了解決這個問題,ECMA 的方法十分簡單粗暴:在語法解析的時候,如果一個語句以「{」開頭,就只把它解釋成語句塊。

這真心是一個坑爹的處理方式!

那既然都是語句塊,那為什么 {a:1} 卻沒有語法錯誤?

其實在這里,a 被解析器理解為了 標簽。標簽 是用來配合 break 和 continue 語句作定向跳轉的。

因此,這樣的寫法就會拋出異常:

復制代碼 代碼如下:

{
    a: function () {}
}

因為 function () {}  不是函數聲明,也不是函數表達式。

到這里,大家應該對 {} 的奇葩處理有了基本的概念。我們再看回文章開始所提到的幾條語句:

復制代碼 代碼如下:

{} + [];    // 0
[] + {};    // "[object Object]"
{} + [] == [] + {};    // false
({} + [] == [] + {});    // true

第一條,因為 {} 是 語句塊,代碼可以理解為:

復制代碼 代碼如下:

if (1) {}
+[]

所以返回值是 0 。

第二條,由于 {} 并不在語句的開頭,所以是一個正常的 對象直接量,空數組和空對象直接相加,返回 "[object Object]" 。

理解了第一第二條,第三條已經無需解釋了。

第四條,因為是 () 開始,第一個 {} 被解析為 對象直接量 ,因而兩條公式相等,返回 true。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av电影院| 日韩在线欧美在线国产在线| 另类专区欧美制服同性| 国产成人97精品免费看片| 国产精欧美一区二区三区| 韩日精品中文字幕| 久久99精品国产99久久6尤物| 日韩中文字幕在线播放| 日韩免费看的电影电视剧大全| 欧美最猛性xxxxx免费| 国产主播精品在线| 日韩精品福利网站| 精品色蜜蜜精品视频在线观看| 日韩经典第一页| 欧美在线中文字幕| 亚洲男人天堂久| 日韩美女写真福利在线观看| 日韩免费观看视频| 伊人男人综合视频网| 亚洲图片欧美日产| 日韩av123| 性色av一区二区三区| 国产久一一精品| 国产精品麻豆va在线播放| 国模极品一区二区三区| 国产精品jizz在线观看麻豆| 日韩电影在线观看永久视频免费网站| 欧美日韩成人黄色| 国产精品一区二区女厕厕| 日韩福利视频在线观看| 中文字幕在线视频日韩| 欧美性黄网官网| 久久久91精品| 久久久国产精品一区| 国产精品成人一区二区| 91久久久久久国产精品| 狠狠躁夜夜躁久久躁别揉| 7777kkkk成人观看| 欧美日韩国产黄| 亚洲高清不卡av| 国产精品爽黄69| 亚洲性夜色噜噜噜7777| 国产精品日韩欧美大师| 国产精品综合网站| 欧美一级bbbbb性bbbb喷潮片| 日本sm极度另类视频| 亚洲一区美女视频在线观看免费| 国产精品久久久久久久久久久不卡| 亚洲理论在线a中文字幕| 欧美国产一区二区三区| 亚洲少妇激情视频| 亚洲女成人图区| 国产精品久久久久99| 亚洲二区中文字幕| 日韩中文视频免费在线观看| 亚洲黄色av女优在线观看| 国产成人小视频在线观看| 91久久精品美女| 欧洲精品在线视频| 国产91在线播放九色快色| 久久久久久久999| 欧美激情视频一区| 九九九热精品免费视频观看网站| 日韩亚洲国产中文字幕| 亚洲第一av网| 日韩国产精品视频| 亚洲性av网站| 日本精品中文字幕| www亚洲精品| 国产精品自拍偷拍视频| 日韩在线视频网| 91精品视频网站| 久久免费视频在线| 性色av一区二区三区在线观看| 亚洲综合日韩中文字幕v在线| 久久精品电影网| 精品欧美国产一区二区三区| 国产午夜精品久久久| xvideos亚洲| 伊人久久综合97精品| 亚洲精品久久久久久久久| 中国日韩欧美久久久久久久久| 中文精品99久久国产香蕉| 日韩av在线网| 国产欧美日韩视频| 5566成人精品视频免费| 91免费人成网站在线观看18| 久久人人爽亚洲精品天堂| 日本精品免费一区二区三区| 丝袜情趣国产精品| 日韩精品在线视频美女| 日韩中文字幕网| 日韩在线视频导航| 亚洲性线免费观看视频成熟| 成人字幕网zmw| 国产美女久久精品| 欧美日韩国产麻豆| 青草青草久热精品视频在线网站| 亚洲欧洲中文天堂| 91在线国产电影| 精品人伦一区二区三区蜜桃免费| 亚洲三级免费看| 日韩视频欧美视频| 国模极品一区二区三区| 国产精品直播网红| 国产成人精品视频| 91精品视频大全| 久久99热这里只有精品国产| 国产视频欧美视频| 国产99在线|中文| 亚洲成人激情小说| 国产精品久久99久久| 日韩人在线观看| 成人国产精品色哟哟| 美女黄色丝袜一区| 国产精品久久久久久久久久久久| 国产乱肥老妇国产一区二| 国产精品影片在线观看| 亚洲成色777777在线观看影院| 久久精品国产久精国产思思| 精品亚洲国产视频| 欧美韩日一区二区| 第一福利永久视频精品| 精品国产一区二区三区在线观看| 日韩欧美999| 亚洲精品久久久久久久久久久| 日韩av理论片| 亚洲国产91色在线| 成人欧美一区二区三区黑人孕妇| 国产视频亚洲精品| 51精品国产黑色丝袜高跟鞋| 色偷偷av一区二区三区| 日韩av电影手机在线| 亚洲人成绝费网站色www| 成人免费午夜电影| 欧美精品在线免费播放| 国产精品人成电影| 久久理论片午夜琪琪电影网| 成人xxxxx| 日韩国产欧美区| 日韩亚洲第一页| 国产一区二区日韩| 91高清视频免费| 欧洲s码亚洲m码精品一区| 日本午夜精品理论片a级appf发布| 日韩精品中文字幕在线播放| 日韩激情av在线免费观看| 亚洲欧美日韩国产中文专区| 日韩在线视频免费观看高清中文| 在线观看久久av| 国产成人aa精品一区在线播放| 色av吧综合网| 欧美高清性猛交| 欧美视频免费在线| 国产91在线高潮白浆在线观看| 亚洲国产成人精品一区二区| 国产日韩欧美一二三区| 日韩电影在线观看中文字幕| 国产精品电影网站| 欧美大片大片在线播放| 国产成人jvid在线播放| 欧美一区第一页| 国产精品美女免费| 中文字幕不卡在线视频极品|