『求教』javascript中关于eval的一个疑问

溺水的鱼 2009-12-28 05:01:55
eval参数如果是对象的话,为什么两边要加括号才可以
var str = "{a:true,b:3}";
var obj = eval("("+str+")");

这个括号起的什么作用呢?

js里面(...)表示什么呢?
比如(function(){alert('a');})();
这里面的n多()
...全文
179 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
溺水的鱼 2009-12-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dh20156 的回复:]
参见:http://www.jslab.org.cn/?tag=ScopeChainAndClosure&page=3
[/Quote]
就是你的答案最好了,多谢
dh20156 2009-12-29
  • 打赏
  • 举报
回复
licip 2009-12-29
  • 打赏
  • 举报
回复
3楼说的有道理。
licip 2009-12-29
  • 打赏
  • 举报
回复
3楼说的有道理。
jerry0814 2009-12-29
  • 打赏
  • 举报
回复
顶你
溺水的鱼 2009-12-29
  • 打赏
  • 举报
回复
看在我这么早就来的份上,给个满意的答案吧
lonelyriver 2009-12-28
  • 打赏
  • 举报
回复
帮顶
溺水的鱼 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zzqkillyou 的回复:]
楼主想的太多了,呵呵
[/Quote]
知其然不知其所以然。。。郁闷啊
千游 2009-12-28
  • 打赏
  • 举报
回复
楼主想的太多了,呵呵
溺水的鱼 2009-12-28
  • 打赏
  • 举报
回复
可以看到,对于对象声明语句来说,仅仅是执行,并不能返回值。为了返回常用的“{}”这样的对象声明语句,必须用括号括住,以将其转换为表达式,才能返回其值。这也是使用JSON来进行Ajax开发的基本原理之一。在例子中可以清楚的看到,第二个alert语句输出的是undefined,而第三个加了括号后输出的是语句表示的对象。
==
可不可以理解为()的作用是返回里面的内容?
SambaGao 2009-12-28
  • 打赏
  • 举报
回复
http://wanyij.blog.51cto.com/46570/43794
freedom421 2009-12-28
  • 打赏
  • 举报
回复
同问。。顶一个。。

(funciton(){alert('a');})()
这种写法是直接定义完function后马上执行的写法。。。至于上面那个是为什么就不知道了、、、
下面这个匿名函数包括起来的括号是起到优先级的作用。。个人认为
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-28 05:01
社区公告
暂无公告