『求教』javascript中关于eval的一个疑问
eval参数如果是对象的话,为什么两边要加括号才可以 var str = "{a:true,b:3}"; var obj = eval("("+str+")"); 这个括号起的什么作用呢? js里面(...)表示什么呢? 比如(function(){alert('a');})(); 这里面的n多()
同问。。顶一个。。 (funciton(){alert('a');})() 这种写法是直接定义完function后马上执行的写法。。。至于上面那个是为什么就不知道了、、、 下面这个匿名函数包括起来的括号是起到优先级的作用。。个人认为 http://wanyij.blog.51cto.com/46570/43794 可以看到,对于对象声明语句来说,仅仅是执行,并不能返回值。为了返回常用的“{}”这样的对象声明语句,必须用括号括住,以将其转换为表达式,才能返回其值。这也是使用JSON来进行Ajax开发的基本原理之一。在例子中可以清楚的看到,第二个alert语句输出的是undefined,而第三个加了括号后输出的是语句表示的对象。 == 可不可以理解为()的作用是返回里面的内容? 楼主想的太多了,呵呵引用 楼主想的太多了,呵呵 知其然不知其所以然。。。郁闷啊 帮顶 看在我这么早就来的份上,给个满意的答案吧 顶你 3楼说的有道理。 3楼说的有道理。引用 参见:http://www.jslab.org.cn/?tag=ScopeChainAndClosure&page=3 就是你的答案最好了,多谢
相关问答:
后台: protected void form_ini2(string id) { //处理代码 } 前台: <script language="javascript"> function DbClickEvent(a ......
用javascript加载页面时指向一个描点。已知如何通过链接做成描点的,可是想让页面加载时直接指向不需要点击链接。 1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ......
三个数x,y,z 比大小.. var x,y,z,t; if (x>y) {t=x;x=y;y=t;} //交换x,y的值 if(x>z) {t=z;z=x;x=t;}//交换x,z的值 if(y>z) {t=y;y=z;z=t;}//交换z,y的值 这是 ......
<script type="text/javascript"> function show(){ var ListUtil=new Object(); var ListUtil.getSelectedIndexes=function (oListbox){ var arrIndexes=new Array; for(var i=0;i ......
我也来一个趣味javascript: 打开以下html文件,依次按下G,L,C三个键,就会有奇迹出现!! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" ......