通常我們在使用ajax獲取到后台返回的json數據時,需要使用 eval 這個方法將json字符串轉換成對象數組, 像這樣:
obj = eval('('+jsonStr+')');//方法1
obj = JSON.parse('('+jsonStr+')');//方法2
//但是如果遇到數據不是json格式,方法2會失效,並且在某些網站中,禁用eval,比如:https://www.makeapie.com/explore.html#sort=rank~timeframe=all~author=all
找到了替代eval的方法如下:
//計算表達式的值
function evil(fn) {
var Fn = Function; //一個變量指向Function,防止有些前端編譯工具報錯
return new Fn('return ' + fn)();
}