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

javascript的 {} 語句塊詳解

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

今日學(xué)習(xí)解析json字符串,用到了一個eval()方法,解析字符串的時候為什么需要加上括號呢?摸不著頭腦。原來javascript中{}語句塊具有二義性,不加括號會出錯,理解這種二義性對我們理解javascript代碼有極大幫助。

一、{}語句塊的兩個含義

表示語句塊

a. 在javascript中可以使用{}來括起代碼,在編輯器中方便管理代碼。因為javascript并沒有塊級作用域,所以這種寫法是無害的。

{
//some code...
}


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

對象字面量

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

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

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

example:

  {name:'kuoao'}    //沒有報錯,但是也沒有創(chuàng)建對象
  {name:'kuohao',age}  //報錯

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

analysis:

  {name:'kuoao'}

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

三、但是問題又來了……

{
name:'kuohao',
age:21
}

//這樣為什么會報錯?這不是對象字面量的寫法嗎?
因為javascript中{}的二義性,{}不僅僅被認(rèn)為是對象字面量而且還會被認(rèn)為是代碼塊。

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

一個代碼塊,兩條label語句,如果沒有逗號,是完全沒有問題的,所以關(guān)鍵在于逗號,兩條語句的分隔應(yīng)該使用分號,所以javascript會判定這是語法錯誤

四、正確的寫法

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

  //正確的寫法

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

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

相關(guān)文章

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

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

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

    Javascript實現(xiàn)異步編程的過程

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

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

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

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

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

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

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

    JavaScript事件列表解說

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

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

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

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

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

    深入了解javascript原型和原型鏈

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

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

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

最新評論

东源县| 新竹县| 宁国市| 秦皇岛市| 汽车| 绥阳县| 罗城| 穆棱市| 荣昌县| 上林县| 丽水市| 望奎县| 武威市| 红安县| 虎林市| 塔城市| 嘉兴市| 巫溪县| 沙湾县| 瓦房店市| 新平| 陆河县| 平昌县| 双辽市| 泗阳县| 汤阴县| 开阳县| 西城区| 高碑店市| 高密市| 民县| 团风县| 集贤县| 漳平市| 平远县| 武义县| 屯留县| 禄丰县| 清水县| 福鼎市| 大邑县|