對于大部分程序員來說,解析json是一個非常基礎的技能。其實,Javascript中的Function方法可以輕松地解析json數據。
// 一個簡單的json格式對象 let json = '{"name": "Tom", "age": 18}'; // 使用Function將json數據轉換為對象 let json_obj = Function(`return ${json}`)(); console.log(json_obj); // {name: "Tom", age: 18}
上面的代碼中,我們使用Function方法將json字符串轉換為對象。其實,這種方法的原理就是創建一個函數,這個函數內部返回了json字符串,調用這個函數就可以得到一個對象。這種方法的好處在于它可以很方便地將json字符串轉換為對象,而且不需要使用任何第三方庫。
不過需要注意的是,這種方法并不安全,因為它會執行字符串中的任何一段JavaScript代碼。所以,如果不信任數據源,請使用其他方法解析json。
除此之外,Function方法還有一個很實用的應用場景,就是在多個作用域之間共享變量。例如:
let x = 10; let f = Function(`return x + 1`); console.log(f()); // 11
上面的代碼中,我們定義了一個變量x,并將它綁定在一個函數f中。當調用函數f時,它會返回x+1的值。這樣,我們就可以實現在不同作用域之間共享變量的效果了。