javascript eval和JSON之間的關係

來源:互聯網
上載者:User

eval函數的工作原理

eval函數會評估一個給定的含有javascript代碼的字串,並且視圖去執行包含在字串裡的運算式或者

一系列的合法的javascript語句。eval函數將把最後一個運算式或者語句所包含的值或引用作為返回值。

console.info(eval("alert('a');alert('b')"))console.info(eval("x=10;y=20;alert(x*y)"));   //200console.info(eval("3+6"));   //9

JSON格式
json簡單說就是javascript中的對象和數組,所以這兩種結構就是對象和數組兩種結構,通過這兩種結構可以表示各種複雜的結構
1、對象:對象在js中表示為“{}”括起來的內容,資料結構為 {key:value,key:value,...}的鍵值對的結構,在物件導向的語言中,key為對象的屬性,value為對應的屬性值,所以很容易理 解,取值方法為 對象.key 擷取屬性值,這個屬性值的類型可以是 數字、字串、數組、對象幾種。
2、數組:數組在js中是中括弧“[]”括起來的內容,資料結構為 ["java","javascript","vb",...],取值方式和所有語言中一樣,使用索引擷取,欄位值的類型可以是 數字、字串、數組、對象幾種。
經過對象、數組2種結構就可以組合成複雜的資料結構了。

{    "acceptIs": null,     "entity": null,     "refuseIs": null,     "result": {        "pageSize": 10,         "resultList": [            {                "SHNOTE": "法拉利F40",                 "STATE": "提交",                 "CTIME": "2013/12/31 13:53:28",                 "PHONE": "13111050937",                 "ID": "40288ba54347286501434736c6c60000",             },                   ],           "totalPage": 1,         "totalSize": 4    }}

eval和JSON
利用eval函數可以將JSON資料轉化為可用的javascript對象。

var datas=eval("("+data+")");

為什麼要加括弧?
加上圓括弧的目的是使eval函數在評估javascript代碼的時候強制將括弧內的運算式轉化為對象,
而不是作為語句來執行。例如對象{},如若不加外層的括弧,那麼eval會將大括弧識別為javascript代碼塊的開始和結束標記,那麼{}將會被認為是執行了一句空語句。如下:

console.info(eval("{}"));   //undefined console.info(eval("({})")); //Object {}

涉及項目代碼:

$(document).ready(function(){$.post('/homea/admin/UserBookView.do', {}, function(data) {    var datas=eval("("+data+")");for(var i=0;i

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.