eval、json.parse()的介绍和使用注意点
生活随笔
收集整理的這篇文章主要介紹了
eval、json.parse()的介绍和使用注意点
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文:eval、json.parse()的介紹和使用注意點
eval和json.parse的使用
eval:來源于官網 定義和用法 eval() 函數可計算某個字符串,并執行其中的的 JavaScript 代碼。 語法: ?eval(string) 參數描述 string必需。要計算的字符串,其中含有要計算的 JavaScript 表達式或要執行的語句。 返回值 通過計算 string 得到的值(如果有的話)。 說明 該方法只接受原始字符串作為參數,如果 string 參數不是原始字符串,那么該方法將不作任何改變地返回。因此請不要為 eval() 函數傳遞 String 對象來作為參數。 如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個屬性,并通過該屬性調用它,則 ECMAScript 實現允許拋出一個 EvalError 異常。
eg: <script type="text/javascript"> eval("x=10;y=20;document.write(x*y)") document.write(eval("2+2")) var x=10 document.write(eval(x+17)) </script> 輸出: 200 4 27 處理json數據 1、eval 根據不同的json格式,一般有兩種方式 json為json數據 轉化json數據,使用方法統一 var dataObj = eval("("+json+")"); 加上圓括號的目的是迫使eval函數在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化為對象,而不是作為語句(statement)來執行 將json數據轉換為json對象 (1)含有“節點”的json數據 var json = { root: [ {name:'1',value:'0'}, {name:'2',value:'1'}, {name:'3',value:'2'}, ] }"; 如果獲取對應的name和value的值,可以使用 $(dataObj.root).each(function(i,item){ var str = "name:"+item.name+",value:"+item.value; }) (2)不含有“節點”的json數據 var json = {"name":"1","name":"2","name":"3"} 使用$(dataObj).each(function(i,item){ var str = "name:"+item.name+",value:"+item.value; })獲取對應的數據 注意:eval使用比較危險,能不用最好就不要用,以免徒增不必要的麻煩
2、JSON.parse(String,function()) Strign:必選參數,為json數據 function():可選參數,如果不為空,則為對象的每個成員調用詞函數
返回結果為對象或者數組,此方法與eval能達到相同的效果,簡單易于使用,但此方法不支持IE6、IE7標準模式,但是可以自己下載json2.js來解決這一問題 網址:http://www.JSON.org/json2.js
使用方法: var dataObj = JSON.parse(json);
for(var data in dataObj){ //獲取對應數據的值 }
eval和json.parse的使用
eval:來源于官網 定義和用法 eval() 函數可計算某個字符串,并執行其中的的 JavaScript 代碼。 語法: ?eval(string) 參數描述 string必需。要計算的字符串,其中含有要計算的 JavaScript 表達式或要執行的語句。 返回值 通過計算 string 得到的值(如果有的話)。 說明 該方法只接受原始字符串作為參數,如果 string 參數不是原始字符串,那么該方法將不作任何改變地返回。因此請不要為 eval() 函數傳遞 String 對象來作為參數。 如果試圖覆蓋 eval 屬性或把 eval() 方法賦予另一個屬性,并通過該屬性調用它,則 ECMAScript 實現允許拋出一個 EvalError 異常。
eg: <script type="text/javascript"> eval("x=10;y=20;document.write(x*y)") document.write(eval("2+2")) var x=10 document.write(eval(x+17)) </script> 輸出: 200 4 27 處理json數據 1、eval 根據不同的json格式,一般有兩種方式 json為json數據 轉化json數據,使用方法統一 var dataObj = eval("("+json+")"); 加上圓括號的目的是迫使eval函數在處理JavaScript代碼的時候強制將括號內的表達式(expression)轉化為對象,而不是作為語句(statement)來執行 將json數據轉換為json對象 (1)含有“節點”的json數據 var json = { root: [ {name:'1',value:'0'}, {name:'2',value:'1'}, {name:'3',value:'2'}, ] }"; 如果獲取對應的name和value的值,可以使用 $(dataObj.root).each(function(i,item){ var str = "name:"+item.name+",value:"+item.value; }) (2)不含有“節點”的json數據 var json = {"name":"1","name":"2","name":"3"} 使用$(dataObj).each(function(i,item){ var str = "name:"+item.name+",value:"+item.value; })獲取對應的數據 注意:eval使用比較危險,能不用最好就不要用,以免徒增不必要的麻煩
2、JSON.parse(String,function()) Strign:必選參數,為json數據 function():可選參數,如果不為空,則為對象的每個成員調用詞函數
返回結果為對象或者數組,此方法與eval能達到相同的效果,簡單易于使用,但此方法不支持IE6、IE7標準模式,但是可以自己下載json2.js來解決這一問題 網址:http://www.JSON.org/json2.js
使用方法: var dataObj = JSON.parse(json);
for(var data in dataObj){ //獲取對應數據的值 }
總結
以上是生活随笔為你收集整理的eval、json.parse()的介绍和使用注意点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多点怎么绑定银行卡(汉典多字的基本解释)
- 下一篇: 王者荣耀信誉怎么到5星