data = (new Function("return" + data))()为什么会返回数组?

最近看到这么个写法 data = (new Function("return" + data))();,感觉有点不理解,为什么 data 会被返回一个数组,于是研究了下,请看代码

<script>
        function data1() {
            return [1, 2, 3]
        }
        // 等价于
        const data2 = function() {
                return [1, 2, 3]
            }
        // 等价于
        const data3 = new Function('return [1, 2, 3];');
        // 等价于
        let data = '[1, 2, 3]';
        let data4 = new Function('return ' + data);
        // 输出的都是 [1, 2, 3]
    </script>

其实直接  JSON.parse(data) 更方便一些

(0)

相关推荐