字符串轉對象
目的
- 工作中如果需要原生 JS 完成字符轉對象的話可以通過 JSON.parse(str), 但是這個方法是ES5中才出現, 如果需要兼容低版本就需要其它方法
- 使用原生 JS 解決字符串轉對象, 讓我們更加容易處理
實現方法
// 得到 對象 格式或 json 格式的一個字符串
var str = '{"name":"張根碩","age":"18"}';
- 使用 ES5 中的方法 JSON.parse()
var first = JSON.parse(str);
ES5 中新添加的方法,將 json 格式字符串轉換為對象
- 使用 new Function 方法
var second = (new Function('return '+ str +';'))();
var second = new Function('return '+ str +';')();
使用函數的構造函數方法(傳參只能傳字符串), 自調用(或者執行), 得到對象
- 使用 eval() 方法
var third = eval('('+ str +')');
使用eval()方法, 傳入字符串需要給字符串添加 "()" 進行包裹
如果不使用 '()' 進行包裹,瀏覽器會將 ':' 解析成代碼塊,最終會得到 ':' 后的結果**
如'{"name" : "張全蛋"}'
最后會的到 '張全蛋' , 而 name 不顯示
- 使用 eval() 和 (function(){})() 方法
var forth = eval('(function(){return '+ str +';})()');
使用 eval() 方法, 將函數自調用, 得到對象