JSON.parse与eval和能将一个字符串解析成一个JSON对象,但还是有挺大区别. 测试代码 var A = "{ a: 1 , b : 'hello' }"; var B = "{ 'a': 1 , 'b' : 'hello' }"; var C = "{'a':1,'b':'hello'}"; var D = '{"a":1,"b":"hello"}'; var E = '{
new Function与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中new Function用在模板引擎比较多. 用 Function 类直接创建函数的语法如下: var function_name = new function(arg1, arg2, ..., argN, function_body) 在上面的形式中,每个 arg 都是一个参数,最后一个参数是函数主体(要执行的代码).这些参数必须是字符串. 比如: function c
json的的解析方法 (非原创) json的解析方法共有两种:eval_r() 和 JSON.parse(),使用方法如下: var jsonData = '{"data1":"Hello,", "data2":"world!}'; var evalJson=eval_r('('+jsonData+')'); var jsonParseJson=JSON.parse(jsonData); 这样就把jsonData这个json格式的字符串
David Flanagan最近写了一个关于全局eval的简单表达式,可以用一行式子表示: var geval = this.execScript || eval; 尽管看起来很简短,但是跨浏览器的兼容性并不好.仔细考虑了下这个话题,我觉得还有一些方法来实现代码的全局执行.而且有些方法--间接eval--并不为人所熟知,而且它们的内涵也不容易让人们所接受,本文主要介绍下该技术. 为了可以更清晰的讲解间接eval,我打算先回顾”全局eval“的方法,并回顾它们是如果起作用的,我也会提到刚刚的单行实