為什么JS中eval處理JSON數(shù)據(jù)要加括號
來源:易賢網 閱讀:770 次 日期:2015-04-20 14:33:35
溫馨提示:易賢網小編為您整理了“為什么JS中eval處理JSON數(shù)據(jù)要加括號”,方便廣大網友查閱!

由于Ajax的興起,JSON這種輕量級的數(shù)據(jù)格式作為客戶端與服務器之間的傳輸格式逐漸地流行起來,進而出現(xiàn)的問題是如何將服務器端構建好的JSON數(shù)據(jù)轉化為可用的JavaScript對象。利用eval函數(shù)無疑是一種簡單而直接的方法。在轉化的時候需要將JSON字符串的外面包裝一層圓括號:

var jsonObject = eval("(" + jsonFormat + ")");

為什么要加括號?

加上圓括號的目的是迫使eval函數(shù)在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化為對象,而不是作為語句(statement)來執(zhí)行。舉一個例子,例如對象字面量{},如若不加外層的括號,那么eval會將大括號識別為JavaScript代碼塊的開始和結束標記,那么{}將會被認為是執(zhí)行了一句空語句。所以下面兩個執(zhí)行結果是不同的:

alert(eval("{}"); // return undefined

alert(eval("({})");// return object[Object]

更多信息請查看IT技術專欄

更多信息請查看腳本欄目

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網