javascript eval方法语法
javascript eval method syntax
我在web应用程序中使用jquery。在那里我们使用下面的eval方法。
var json = eval('(' + data + ')');
经过谷歌搜索,我发现上面使用的eval方法将json数据转换为javascript对象。但这种语法意味着什么?为什么必须将它括在('(')')括号内。请帮我理解。
使用()
来封装数据是为了防止{}
被解析为块。
var json = eval('{}'); // the result is undefined
var json = eval('({})'); // the result is the empty object.
var json = eval('{"a": 1}'); // syntax error
var json = eval('({"a": 1})'); // the result is object: {a: 1}
但是您不应该使用eval
来解析json数据。
请改用var json = JSON.parse(data);
或某些库函数。
不要使用eval
来解析json。由于您使用的是jQuery,请使用$.parseJSON(data)
。如果数据包含window.close()
怎么办?
WRT到括号,你可以在douglas crackford的json2.js:中看到一条解释它们的评论
// In the third stage we use the eval function to compile the text into a // JavaScript structure. The '{' operator is subject to a syntactic ambiguity // in JavaScript: it can begin a block or an object literal. We wrap the text // in parens to eliminate the ambiguity.
相关文章:
- 使用$scope方法时的ControllerAs语法
- node.js是否具有'match()'方法如果是,语法是什么
- jQuery.html()方法语法
- javascript eval方法语法
- jQuery AJAX Post方法错误(语法错误)
- 将普通js转换为角度语法的快速方法
- 有没有一种简单的转换方法可以将chrome消息传递转换为safari消息传递语法
- 在jQuery方法中编写自定义属性的正确语法是什么
- 调用方法时的Jquery语法
- 在 NodeJS 中放置回调的语法和方法
- 为我的网站使用Facebook API JSON的最简单方法(哪种语言以及如何语法)
- Javascript,设置 onclick 方法语法
- 什么'是调试未捕获语法错误的有效方法
- 如何获得家长'我使用的方法'控制器为'angularjs中的语法
- 如何在AngularJS modal中使用controllerAs语法?的方法
- Javascript语法字典(标准函数、对象、方法和关键字)
- 为什么super可以使用方法语法而不能使用属性语法?
- 解析.然后方法和链接|语法让我迷惑
- 动态窗口语法.开放的方法
- Javascript对象方法语法声明