最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript的 {} 語(yǔ)句塊詳解

 更新時(shí)間:2016年02月27日 11:53:37   投稿:hebedich  
這篇文章主要介紹了javascript的 {} 語(yǔ)句塊詳解的相關(guān)資料,需要的朋友可以參考下

今日學(xué)習(xí)解析json字符串,用到了一個(gè)eval()方法,解析字符串的時(shí)候?yàn)槭裁葱枰由侠ㄌ?hào)呢?摸不著頭腦。原來(lái)javascript中{}語(yǔ)句塊具有二義性,不加括號(hào)會(huì)出錯(cuò),理解這種二義性對(duì)我們理解javascript代碼有極大幫助。

一、{}語(yǔ)句塊的兩個(gè)含義

表示語(yǔ)句塊

a. 在javascript中可以使用{}來(lái)括起代碼,在編輯器中方便管理代碼。因?yàn)閖avascript并沒(méi)有塊級(jí)作用域,所以這種寫法是無(wú)害的。

{
//some code...
}


b. 在javascript中 ,條件判斷語(yǔ)句,循環(huán)語(yǔ)句,函數(shù)都需要{}語(yǔ)句塊來(lái)整合代碼

對(duì)象字面量

var box = {
  name:'kuoaho',
  age:21 
}

//此時(shí)[code]作為表達(dá)式,可以賦值給一個(gè)變量
//其實(shí)對(duì)象字面量就是可以生成對(duì)象值的表達(dá)式

二、那如果對(duì)象字面量不作為一個(gè)賦值表達(dá)式,會(huì)發(fā)生什么情況呢?

example:

  {name:'kuoao'}    //沒(méi)有報(bào)錯(cuò),但是也沒(méi)有創(chuàng)建對(duì)象
  {name:'kuohao',age}  //報(bào)錯(cuò)

由上面可以看出對(duì)象字面量只能夠作為表達(dá)式賦值,第一種寫法沒(méi)有錯(cuò),只是javascript將它作為一個(gè)label語(yǔ)句解析了。

analysis:

  {name:'kuoao'}

    //{}一個(gè)語(yǔ)句塊
   // name:'kuohao',一個(gè)label語(yǔ)句,用于標(biāo)記for循環(huán)

三、但是問(wèn)題又來(lái)了……

{
name:'kuohao',
age:21
}

//這樣為什么會(huì)報(bào)錯(cuò)?這不是對(duì)象字面量的寫法嗎?
因?yàn)閖avascript中{}的二義性,{}不僅僅被認(rèn)為是對(duì)象字面量而且還會(huì)被認(rèn)為是代碼塊。

analysis:
  {
  name:'kuohao',
  age:21
  }

一個(gè)代碼塊,兩條label語(yǔ)句,如果沒(méi)有逗號(hào),是完全沒(méi)有問(wèn)題的,所以關(guān)鍵在于逗號(hào),兩條語(yǔ)句的分隔應(yīng)該使用分號(hào),所以javascript會(huì)判定這是語(yǔ)法錯(cuò)誤

四、正確的寫法

({
  name:'kuohao',
  age:21
  })

  //正確的寫法

()會(huì)把語(yǔ)句轉(zhuǎn)換成表達(dá)式,稱為語(yǔ)句表達(dá)式,對(duì)象字面量不是表達(dá)式嗎?為什么還需要()來(lái)轉(zhuǎn)換?

加上括號(hào)以后,就可以消除這種二義性,因?yàn)槔ㄌ?hào)里的代碼都會(huì)被轉(zhuǎn)換為表達(dá)式求值并且返回,因此語(yǔ)句塊也就變成了對(duì)象字面量,也可以得出,對(duì)象字面量必須作為表達(dá)式而存在

相關(guān)文章

  • JavaScript 學(xué)習(xí)筆記 Black.Caffeine 09.11.28

    JavaScript 學(xué)習(xí)筆記 Black.Caffeine 09.11.28

    這兩天終于寫出了一個(gè)個(gè)人認(rèn)為真正意義上的作業(yè)了,不過(guò),最大感受就是。。。IE太垃圾了。。。so,這個(gè)作業(yè)實(shí)際上也沒(méi)有完成的很完美,因?yàn)?,在IE上還是有兼容性的問(wèn)題存在,不錯(cuò),就此先自我總結(jié)一下吧~免得以后又忘了~
    2009-11-11
  • Javascript實(shí)現(xiàn)異步編程的過(guò)程

    Javascript實(shí)現(xiàn)異步編程的過(guò)程

    這篇內(nèi)容詳細(xì)分析了Javascript實(shí)現(xiàn)異步編程的過(guò)程以及原理解釋,對(duì)此知識(shí)點(diǎn)有興趣的朋友可以學(xué)習(xí)下。
    2018-06-06
  • JavaScript中prototype為對(duì)象添加屬性的誤區(qū)介紹

    JavaScript中prototype為對(duì)象添加屬性的誤區(qū)介紹

    prototype為對(duì)象添加屬性的的過(guò)程中有些誤區(qū),在本文將為大家詳細(xì)介紹下,感興趣的朋友可不要錯(cuò)過(guò)
    2013-10-10
  • De facto standard 世界上不可思議的事實(shí)標(biāo)準(zhǔn)

    De facto standard 世界上不可思議的事實(shí)標(biāo)準(zhǔn)

    前些天IEBlog中提到實(shí)現(xiàn)互通并不是只靠標(biāo)準(zhǔn)就行,其中舉出了一些關(guān)于事實(shí)上的標(biāo)準(zhǔn)的考慮——所謂“事實(shí)上的標(biāo)準(zhǔn)”,也就是并非標(biāo)準(zhǔn),但大家都遵循著它去做事情的那么一種東西。
    2010-08-08
  • 收藏一些不常用,但是有用的代碼

    收藏一些不常用,但是有用的代碼

    收藏一些不常用,但是有用的代碼...
    2007-03-03
  • JavaScript事件列表解說(shuō)

    JavaScript事件列表解說(shuō)

    JavaScript事件列表解說(shuō)...
    2006-12-12
  • js函數(shù)在frame中的相互調(diào)用詳解

    js函數(shù)在frame中的相互調(diào)用詳解

    一個(gè)HTML頁(yè)面可以有一個(gè)或多個(gè)子框架,這些子框架以<iframe>來(lái)標(biāo)記,用來(lái)顯示一個(gè)獨(dú)立的HTML頁(yè)面。這里所講的框架編程包括框架的自我控制以及框架之間的互相訪問(wèn),例如從一個(gè)框架中引用另一個(gè)框架中的JavaScript變量、調(diào)用其他框架內(nèi)的函數(shù)、控制另一個(gè)框架中表單的行為等
    2014-03-03
  • JavaScript基礎(chǔ)語(yǔ)法與數(shù)據(jù)類型介紹

    JavaScript基礎(chǔ)語(yǔ)法與數(shù)據(jù)類型介紹

    這篇文章介紹了JavaScript基礎(chǔ)語(yǔ)法與數(shù)據(jù)類型,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 深入了解javascript原型和原型鏈

    深入了解javascript原型和原型鏈

    本文詳細(xì)講解了javascript原型和原型鏈,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2021-12-12
  • JavaScript程序中的流程控制語(yǔ)句用法總結(jié)

    JavaScript程序中的流程控制語(yǔ)句用法總結(jié)

    條件判斷和循環(huán)是程序中的基本執(zhí)行流程控制方式,這里我們落實(shí)到具體語(yǔ)句,來(lái)看一下JavaScript程序中的流程控制語(yǔ)句用法總結(jié)
    2016-05-05

最新評(píng)論

合水县| 德安县| 怀来县| 临朐县| 荥经县| 贺州市| 鄂托克前旗| 报价| 乌兰县| 阿城市| 晋中市| 华蓥市| 海丰县| 天全县| 枞阳县| 长阳| 灌云县| 红原县| 依兰县| 水富县| 肃南| 东乡县| 甘谷县| 越西县| 广灵县| 上杭县| 怀宁县| 梧州市| 湘西| 海盐县| 孙吴县| 濮阳县| 阳东县| 衡山县| 荥阳市| 南郑县| 资中县| 衡阳市| 玉环县| 顺义区| 中西区|