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

首頁 > 編程 > JavaScript > 正文

解析Javascript中大括號“{}”的多義性

2019-11-20 21:32:33
字體:
來源:轉載
供稿:網友

JS中大括號有四種語義作用

語義1,組織復合語句,這是最常見的

復制代碼 代碼如下:

if( condition ) {
  //...
}else {
  //...
}
for() {
  //...
}

語義2,對象直接量聲明
復制代碼 代碼如下:

var obj = {
    name : 'jack',
    age : 23
};

整個是個賦值語句,其中的{name:'jack',age:23}是個表達式。

語義3,聲明函數或函數直接量

復制代碼 代碼如下:

function f1(){
    //...
}

var f2 = function(){
    //...
}

f1與非f2的區別是前者在語法解釋期,后者在運行期。區別在于:如果調用該函數的代碼在函數定義之后,則沒有區別;如果調用該函數的代碼在函數定義之前,則f1仍然可以調用,f2則會報錯,提示f2未定義。

語義4,結構化異常處理的語法符號

復制代碼 代碼如下:

try {
    //...
}catch( ex ){
    //...
}finally{
    //...
}

這里的大括號與符合語句(語義1 )是有區別的,大括號中如果只有一條語句,在if/else/for等中大括號是可以省略的,但try/catch/finally則不能省略。

以下代碼糾結了偶N久

復制代碼 代碼如下:

function(){}() //匿名函數立即執行, 語法分析期報
{}.constructor //獲取對象直接量的構造器,語法分析期報錯

令人不解的是為何[].constructor這么寫卻不報錯呢,一個是想獲取對象直接量的構造器,一個是獲取數組直接量的構造器而已。

當然添加個變量接收也不會報錯

var c = {}.constructor;

同樣的情況如

var fn = function(){}(),也不會報錯。

實際上是js的“語句優先”在作怪,即{}被理解成復合語句塊(語義1 )而不是對象直接量(語義2 )或聲明函數(語義3 )的語義。

function(){}(),大括號被理解成復合語句,自然前面的function()聲明函數的語法不完整導致語法分析期出錯。

{}.constructor,大括號被理解成復合語句,大括號后面是點運算符,點運算符前沒有合理的對象自然也報錯。

修復方式眾所周知:加個強制運算符()
(function(){})(),(function(){});//強制其理解為函數(語義3 ),“函數()”表示執行該函數,即聲明后立即執行了。

({}).constructor //({})強制把大括號理解成對象直接量(語義2 ),“對象.xx”表示獲取對象的成員,自然后面的點運算符可以正常執行了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品这里热有精品| 亚洲欧美日韩中文在线| 欧美日韩成人在线播放| 成人午夜一级二级三级| 精品国产一区二区三区久久狼黑人| 亚洲欧洲日产国码av系列天堂| 另类图片亚洲另类| 欧美激情一区二区久久久| 欧美日韩国产精品一区二区不卡中文| 欧美色视频日本高清在线观看| 日韩成人性视频| 欧美精品激情blacked18| 91在线中文字幕| 久久亚洲成人精品| 在线观看91久久久久久| 亚洲欧美日韩精品久久亚洲区| 日韩美女中文字幕| 色诱女教师一区二区三区| 欧美在线视频a| 久久久精品网站| 久久久欧美一区二区| 久久久国产视频| xvideos成人免费中文版| 亚洲国产精品va在线| 97在线视频免费观看| 国产99久久精品一区二区| 亚洲第一免费网站| 一区二区欧美久久| 国产精品成人av性教育| 欧美精品18videos性欧美| 中文字幕av日韩| 亚洲 日韩 国产第一| 欧美激情精品久久久久久变态| 久久国产天堂福利天堂| 亚洲在线第一页| 国产三级精品网站| 日韩在线观看你懂的| 2019av中文字幕| 日韩精品在线看| 亚洲va电影大全| 欧美插天视频在线播放| 欧美日韩电影在线观看| 亚洲精品久久久久中文字幕欢迎你| 成人免费xxxxx在线观看| 夜夜躁日日躁狠狠久久88av| 国产亚洲综合久久| 日韩免费av在线| 亚洲奶大毛多的老太婆| 宅男66日本亚洲欧美视频| 亚洲欧美国产制服动漫| 丝袜亚洲另类欧美重口| 欧美激情图片区| 国产欧美日韩精品丝袜高跟鞋| 亚州精品天堂中文字幕| 91chinesevideo永久地址| 欧美性猛交xxxx免费看漫画| 不卡伊人av在线播放| 精品国产91久久久久久老师| 欧美在线视频在线播放完整版免费观看| 欧美精品一区在线播放| 久久久国产精品亚洲一区| 国产日韩欧美中文| 日韩av大片在线| 91青草视频久久| 成人动漫网站在线观看| 日韩亚洲在线观看| 久久久av免费| 久久亚洲综合国产精品99麻豆精品福利| 欧美自拍视频在线观看| 精品久久中文字幕久久av| 精品久久久免费| 国产精品第二页| 久久天天躁狠狠躁夜夜躁2014| 538国产精品一区二区在线| 国产一区二区三区精品久久久| 日韩精品在线免费观看| 国产精品久久久久久av福利软件| 成人在线免费观看视视频| 91久久精品一区| 成人精品aaaa网站| 国产精品白丝av嫩草影院| 亚洲国产精品999| 亚洲香蕉成人av网站在线观看| 成人免费网视频| 亚洲国产精品网站| 亚洲欧美资源在线| 欧美激情精品久久久| 国产精欧美一区二区三区| 精品国产乱码久久久久久婷婷| 日韩av中文字幕在线播放| 另类天堂视频在线观看| 久久99久久亚洲国产| 国产在线观看精品一区二区三区| 欧美日韩在线影院| 精品国产一区二区三区久久久| 亚洲娇小xxxx欧美娇小| 欧美精品在线观看91| 在线性视频日韩欧美| 国产精品大陆在线观看| 国产一区二区三区视频在线观看| 91在线色戒在线| 日韩av综合网站| 久久av资源网站| 最近2019年日本中文免费字幕| 国产午夜精品麻豆| 欧美成人在线免费视频| 亚洲国产精品资源| 免费91在线视频| 国模吧一区二区| 91精品视频在线看| 欧美日韩国产123| 这里只有精品视频| 欧美电影院免费观看| 国产91色在线免费| 国产主播精品在线| 国产精品成人播放| 国产亚洲精品美女| 欧美视频专区一二在线观看| 亚洲一区二区三区sesese| 97色在线播放视频| 欧美黑人性猛交| 超碰精品一区二区三区乱码| 国产精品丝袜久久久久久不卡| 色综合久久精品亚洲国产| 日韩中文字幕国产精品| 高清视频欧美一级| 亚洲一区二区国产| 欧美重口另类videos人妖| 国产精品一区二区3区| 一区二区三区www| 久久成年人视频| 午夜精品一区二区三区在线视| 精品偷拍各种wc美女嘘嘘| 亚洲成年网站在线观看| 国产精品网址在线| 日本精品性网站在线观看| 成人日韩在线电影| 日韩电影免费在线观看中文字幕| 亚洲精品在线不卡| 欧美怡春院一区二区三区| 97在线视频一区| 亲爱的老师9免费观看全集电视剧| 日韩中文字幕国产精品| 欧美日韩精品中文字幕| 国产成人免费av电影| 亚洲已满18点击进入在线看片| 亚洲欧美综合区自拍另类| 久久国内精品一国内精品| 欧美亚洲一区在线| 亚洲精品综合精品自拍| 亚洲精品日韩久久久| 欧美诱惑福利视频| 久久亚洲私人国产精品va| 久久久久久亚洲精品中文字幕| 成人免费在线视频网址| 亚洲综合日韩在线| 亚洲精品之草原avav久久| 亚洲欧美激情视频| 午夜精品在线视频| 日韩在线视频线视频免费网站| 欧美色图在线视频| 成人亚洲欧美一区二区三区| 久久久久亚洲精品国产| 亚洲精品电影在线观看|