js中这个函数eval()对json数据有什么用?那eval( '(' + content + ')' )里边为什么要加引号呢?

作者&投稿:江詹 (若有异议请与网页底部的电邮联系)
eval()里面放了json的格式的数据,是何操作~

eval()是把传入参数当语句运行的函数
eval(({'priceA':'26.49','priceB':'12.25','priceC':'10.11','lastUpdateTime':'2009-03-25 16:44:29'}));
这句执行的效果就和
var obj = {'priceA':'26.49','priceB':'12.25','priceC':'10.11','lastUpdateTime':'2009-03-25 16:44:29'}
一样,返回了一个包含有priceA, priceB等成员的object类型的变量。这样,可以把JSON中的数据读取到javascript对象中。

var obj = eval(({'priceA':'26.49','priceB':'12.25','priceC':'10.11','lastUpdateTime':'2009-03-25 16:44:29'}));
obj.priceA // 26.49
obj.priceB // 12.25
obj.priceC // 10.11
obj.lastUpdateTime // 2009-03-25 16:44:29

补充:
那对括号的问题,我试了一下,确实是可要可不要,没有那多余的一对括号也没有问题。
至于两者为什么一样,我前面也说了,eval函数就是把传给它的参数当成js语句来执行的,现在传给它的参数是
{'priceA':'26.49','priceB':'12.25','priceC':'10.11','lastUpdateTime':'2009-03-25 16:44:29'}
自然,执行eval(...)后的效果跟直接使用
{'priceA':'26.49','priceB':'12.25','priceC':'10.11','lastUpdateTime':'2009-03-25 16:44:29'}
的效果是一样的了

至于eval函数具体的原理,可以到网上查查相关的资料。

不要用eval,很危险,这个东西能不用最好不用。
w3c标准的浏览器(如火狐、chrome等)是有一个对象JSON(注意是大写)专门用来处理json的。
这个对象有两个函数:
JSON.parse(text) //用于解析json
JSON.stringify(object) //用于生成json格式
早期的IE版本没有这个对象,楼主可以去json的官方网站自行下载json2.js对付早期IE版本http://www.JSON.org/json2.js

对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:

var dataObj=eval("("+data+")");//转换为json对象

为什么要 eval这里要添加 “("("+data+")");//”呢?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语 句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始 和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]


webform 中时间输入问题
s += "parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzThe...function meizzDayClick(n,ex) \/\/点击显示框选取日期,主输入函数***{ parent.meizzTheDate=n; var...function evaSetTimeNothing() \/\/设置时间控件为空{ WriteDateTo(meizzTheYear,meizzTheMonth,meizzThe...

原谅他77次结局eva回头看到了谁?男女主角最后真的像电影一样分开了吗...
没有一起,男女之间什么都可以原谅。出轨不能原谅

excel表格中单元格中计算函数,如C3为1*8*30,D3为0.5,则C3乘D3怎么算不...
1. C3=1*8*30,结果是240。D3=0.5,在其它单元格输入公式:=C3*D3,结果是120,而不是12。不可能有什么问题。2. 请检查,D3是否为文本格式,或有隐藏的其它字符。

主函数中输入20个学生的成绩,编写函数fun()求出其中大于平均成绩的学生...
宙也辽宰草俱取牵刘回

EXCEL VBA 窗体ComboBox中的函数能够直接调用吗?为什么会出现#Value...
evaluate 使用的问题 evaluate 识别不了"f(x)= 0.002057*x+75.26",能识别的是 "0.002057*x+75.26"或者,你一定要用 "f(x)= 0.002057*x+75.26" 这种格式,那就去掉前5个字符 用 aa=right(aa,len(aa)-5)

EXCEL函数无法运行
EXCEL2003与2007的问题是低的版本不能打开高的版本编制的文件,也就是说,你用2003无法打开2007正常保存的文件。但是,EXCEL支持向下兼容,就是说2007可以打开2003的文件,并且,2007制作的文件可以选择保存成低版本可识别的形式。保存时,点文件,另存为,弹出的窗口下边有两个格,一个是文件名称,可以定...

“对称函数理论在计算机算法中的应用”的参考书?
《算法导论》(Introduction to Algorithms),作者:Thomas H. Cormen 等。这本书是算法学习的经典参考书,讲解了各种基础算法和数据结构,包括对称函数理论的应用。《算法设计与分析基础》(Algorithm Design and Analysis),作者:Eva Tardos。这本书是算法设计与分析的入门书籍,讲解了各种基础算法和数据...

垃圾填埋场稳定性的计算
φs——垃圾内摩擦角; a——垃圾的坡角; θ——填埋场基底的倾角; WA——主动楔的重量; NA——作用于主动楔底部的法向力; 图4-18 填埋场垃圾两相邻楔体上的作用力[3] FA——作用于主动楔底部的摩擦力; EHA——被动楔作用于主动楔上的法向力 (大小未知,方向垂直于楔体接触面)EHA=EHP; EVA——作用于...

专业财务函数有哪几个类具体表示法是什么
表示取得M个报告期之前的第N号专业财务数据,例如PROFFIN(3001,0)表示最近一期总股本,N的取值请参阅上表——这个表在哪儿???TMD全球找不到???特定日期的专业财务数据。用法PFFINON(N,Y,MD)表示取得Y年M月D日的第N号专业财务数据,若当天未发布财务数据则为0,如PFFININ(3001,2000,1231)取得2000年12月31日...

pascal 错误 253
不是PS的吧,为了空间流量?错误表:运行错误是指程序运行时出现的错误,当发生时,Turbo Pascal显示如下信息:RUNTIME ERROR NNNN AT XXXX:YYYY 其中,nnnn是运行错误代码,xxxx是错误发生的程序段,yyyy是错误地址偏移。DOS 错误代码:1无效DoS功能号 2文件末找到 3路径未找到 4打开文件过多 5禁止...

五营区18993434238: JavaScript中eval 是做什么用的? -
乾昌羧甲: eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它.举个小例子:var the_unevaled_answer = "2 + 3";var the_evaled_answer = eval("2 + ...

五营区18993434238: javascript中eval()函数的作用和缺陷? -
乾昌羧甲: eval方法是在运行时对脚本进行解释执行,而普通的javascript会有一个预处理的过程.所以会有一些性能上的损失,但是通常通过一些手段能将这些性能损失降低到非常少.不至于谈虎色变. eval通常用在一些需要动态执行字符串,或将字符串转为javascript对象的场景,比如将json字符串转为javascript对象.至于eval容易被XSS攻击是属于想当然的说法吧,XSS攻击就是在你的页面上嵌入html或javascript代码,我觉得与是否使用eval方法没有什么关系.

五营区18993434238: javascript中eval的用法 -
乾昌羧甲: 1、和其他解释性语言一样,javascript 同样可以解释运行由javascript源代码组成的字符串,javascript 通过eval()来完成.2、 eval() 其实是一个函数,是javascript很早版本中就已经存在,但是javascript设计者和解释器对其进行了许多的限制...

五营区18993434238: js eval 这个函数有什么漏洞吗 -
乾昌羧甲: eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined.JavaScript中的eval()不安全,可能会被利用做XSS攻击,eval也存在一个安全问题,因为它可以执行传给它的任何字符串,所以永远不要传入字符串或者来历不明和不受信任源的参数.

五营区18993434238: javascript eval什么意思? -
乾昌羧甲: eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法: eval(string) 参数说明: string:必需.要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句. 返回值: 通过计算 string 得到的值(如果有的话). ...

五营区18993434238: 请清楚、明了地介绍一下js中eval的用法 请不要复制 十分感谢 -
乾昌羧甲: 最简单的eval的例子:<br>s='3+5';<br>document.write(s,'=');<br>document.write(eval(s));<br>你能说出结果吗?<br><br>结果是:<br>3+5=8<br>那么eval是什么?你试着说一下看.是不是把字符串变量或者常量,作为js的代码进行解释,请再回忆一下上面的例子,然后看了下面的例子你就算完全懂eval了:<br>s='alert(123)';<br>eval(s);<br>上面的代码运行时,会弹出一个提示窗口,内容是123.

五营区18993434238: javascript中eval的用法
乾昌羧甲: 首先要明白eval.这个是可以吧字符串代码,直接当做js运行. 比如 var ss="alert(1);"; 这个时候ss保存的是文本. 使用 eval(ss);这样就相当于,执行了ss里面的js语句. 现在看看你提出的问题. 就是相当于 动态的设置了一个变量 var curelement. 其中layerref和layername 都是动态传进来的.

五营区18993434238: js中把给定的一段字符串转换成比较运算,并判断对错. -
乾昌羧甲: 有个函数叫eval(),此函数可以执行该字符串并返回结果.比如var a = eval("(234+45)*2此时 a就是false

五营区18993434238: javascript的eval函数
乾昌羧甲: eval()函数其实很简单,也很强大.它的作用就是把一串字符串当作语句去执行而已.比如你在javascript中执行 eval("alert('Hello,World!')"); 运行它,你就会看到屏幕上弹出有Hello, World!字样的对话框.这里虽然"alert('Hello,World!')"是个字符串,但是eval函数还是会把它当作javascript语句去执行. eval()函数其他用法很多,可以慢慢研究.另外BS有些人从别处偷的驴唇不对马嘴的回答,不懂就不要回答,浪费网络资源.

五营区18993434238: 在JS中eval函数是什么意思 -
乾昌羧甲: 它的功能是把对应的字符串解析成JS代码并运行 比如说你现在要运行一个可变的方法 function name1(){……} function name2(){……} var m="name1"; eval(m+'()');//运行name1(); m='name2'; eval(m+'()');//运行name2();

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网