parse 和 eval 的區別

2021-08-26 11:59:11 字數 665 閱讀 1589

一般在js中使用parse將string轉json,相對來說比較安全

var a = "";

var b = "";

var c = "";

var d = '';

var e = '';

var f = '';

var g = '';

parse:

物件和陣列:屬性名稱必須用雙引號包裹;最後乙個屬性後面不能有逗號。

數值:前導0不能使用(在 json.stringify 中將會被忽略,在 json.parse 會丟擲錯誤);小數點後面至少有乙個數字。

字串:只有有限的字元能夠被轉義;不允許某些控制字元;但允許使用unicode 行分隔符 (u+2028) 和段落分隔符 (u+2029) ;字串必須用雙引號括起來。

例:json.parse(a);——>d、e、f可以

var data=,,]

eval:

var jsontext=json.stringify(data);//將json轉字串

eval('('+jsontext+')');

以上全可以轉化。

eval()不會檢查json的格式,如果字串中,存在js的**會一併執行

eval和new Function的區別

eval和new function都可以動態解析和執行字串。但是它們對解析內容的執行環境判定不同。var a global scope function b b eval中的 執行時的作用域為當前作用域。它可以訪問到函式中的區域性變數。new function中的 執行時的作用域為全域性作用域,不論...

bind和eval的區別

eval 方法 在執行時使用反射執行後期繫結計算,因此與標準的asp.net資料繫結方法bind相比,會導致效能明顯下降。它一般用在繫結時需要格式化字串的情況下。多數情況盡量少用此方法 eval 方法是靜態 唯讀 方法,該方法採用資料字段的值作為引數並將其作為字串返回。bind 方法支援讀 寫功能,...

30 C Convert和parse的區別

convert.toint32 與int.parse 的區別 1 這兩個方法的最大不同是它們對null值的處理方法 convert.toint32 null 會返回0而不會產生任何異常,但int.parse null 則會產生異常。沒搞清楚convert.toint32和int.parse 的細細微...