<div class="quote_title"> 写道</div>
<div class="quote_div">var Jason="{name:'jason.zhao'}";<br><br>
eval("var oName="+Jason);<br><br>
alert(oName.name);//输出"jason.zhao"</div>
<p>1.使用eval()可以将jason格式字符串转化为js 对象,</p>
<p>---------------------------------------------------------------------------------------------------------------------------------</p>
<div class="quote_title"> 写道</div>
<div class="quote_div">var iNum=eval("5+2");<br>
alert(iNum);//输出“7”</div>
<p>2.使用eval()可以计算某个字符串</p>
<p>--------------------------------------------------------------------------------------------------------------------------------</p>
<p>转:</p>
<p>今天又碰到一件郁闷的事,让一个小小的eval给绊倒了.究竟是怎么回事呢?请听我详解.</p>
<p>今天做项目,有一个网页在ie下正常工作,但在火狐下,他居然不运行.我仔细检查了一下网页上的javascript,也没发现什么不兼容的地方.不
得已,我祭出了法宝级的工具--fireBug.在FireBug中,我设置了断点,按F10单步调试,单只见走到一半,网页闪了一下,便结束了.郁闷.
仔细观察了一下代码,发现在此地方,fireBug停下: var
Size_List=eval("Form1.Size_List_"+suit_array_s[0].trim())......
我想难不成firefox不支持根据name取值,于是我做了一个实验,实验html内容如下:</p>
<pre name="code" class="html"><head>
<script type="text/javascript">
function test()
{
alert(form1.txt1.value);
}
</script>
</head>
<form name=form1 action="" onSubmit="test();" method=post>
<input type="text" name="txt1">
<input type="submit" value=提交>
</form></pre>
<p>但是测试发现,在ie和firefox中都很正常,郁闷啊.究竟哪里出错?难道是eval,
我又改之为 alert(eval("form1.txt1.value")),
仍然正常...................无限郁闷中.........</p>
<p>最后我使出我最...厉害的杀手锏,在脚本中添加如下代码:</p>
<p>window.onerror=reportError;<br>
function reportError(msg,url,line) {<br>
var str = "You have found an error as below: \n\n";<br>
str += "Err: " + msg + " on line: " + line;<br>
alert(str);<br>
return true;<br>
}</p>
<pre name="code" class="html">window.onerror=reportError;
function reportError(msg,url,line) {
var str = "You have found an error as below: \n\n";
str += "Err: " + msg + " on line: " + line;
alert(str);
return true;
}</pre>
<p>错误终于显出原形:<img src="http://images.cnblogs.com/cnblogs_com/yuanshangcao/ERROR.JPG" border="0" alt="" width="350" height="129">
</p>
<p>Form1未定义?不可能.网页中有一个form,name和id都是Form1.怎能没定义?!将测试html改为</p>
<pre name="code" class="html"><head>
<script type="text/javascript">
function test()
{
alert("form1.txt"+1+".value");
}
</script>
</head>
<form name=form1 action="" onSubmit="test();" method=post>
<input type="text" name="txt1">
<input type="submit" value=提交>
</form></pre>
<p>之后,再在ff中试一下,出错.终于发现错误的原因,firefox下,如果写成""+变量,再用eval后,ff无法正确执行,在ie中正常,郁闷,有没有解决方法呢?有!</p>
<p>改之为</p>
<pre name="code" class="html"><head>
<script type="text/javascript">
function test()
{
alert("document.form1.txt"+1+".value");
}
</script>
</head>
<form name=form1 action="" onSubmit="test();" method=post>
<input type="text" name="txt1">
<input type="submit" value=提交>
</form></pre>
<p> 在form1前面,加一个"document.",再测试,正常,问题解决..............郁闷,为什么"form1.XX"可以,为什
么"form1."+变量不行,而"document.form1."+变量又可以..........真让人糊涂啊,这javascript,这
firefox...........</p>
<p> </p>
--------------------
呵呵,看看这篇文章,你就明白了。
(1)对于IE浏览器,默认已经提供了这样的函数:execScript,用于在全局空间执行代码,只是知道的人还不多。
(2)对于Firefox浏览器,直接调用eval函数,则在调用者的空间执行;如果调用 window.eval则在全局空间执行。
这个知道的人估计就更少了。毕竟alert(eval==window.eval)返回true!
分享到:
相关推荐
我们知道,在很多脚本语言中都有eval函数,它可以把字符串转换为表达式并执行.如在javaScript中: var str = aid.value + ".... 这样这个字符串就变成了表达式或语句开始执行.这样的功能对于动态构造变量是有非常重要
2020年EVAL 函数EXECUTEGLOBAL 语句使用说明.pdf2020年EVAL 函数EXECUTEGLOBAL 语句使用说明.pdf2020年EVAL 函数EXECUTEGLOBAL 语句使用说明.pdf2020年EVAL 函数EXECUTEGLOBAL 语句使用说明.pdf2020年EVAL 函数...
公式操作、表达式动态语句,可以考虑使用 Eval Expression。 本文件给你无限使用的特权,基于netstand2.1制作,可以方便的用于netcore 3.1和net5中 需要下列包 ...
Eval 函数 计算一个表达式的值并返回结果。 [result = ]Eval(expression) 参数 result 可选项。 是一个变量,用于接受返回的结果。...Eval 方法总是采用第二种解释,而 Execute 语句总是采用第一种
函数和with语句 eval 定义 eval()是一个全局函数,javascript通过eval()来解释运行由javascript源代码组成的字符串 var result = eval('3+2'); console.log(result,typeof result);//...
利用本工具你甚至可以只用四条语句即可编制一个迷你版的MatLab 软件。 如下: #include “eval32.h” int main(int argc, char* argv[]) { tsInitialize(NULL,NULL,NULL); atexit((void (*)())(tsTerminate)); ...
eval简介 —eval在ECMA定义中是全局对象原型的方法; —eval接受的参数是字符串格式的js代码, 将由执行引擎(记得...执行表达式语句 eval((+javascript类型+));转为javascript对象 */ var jsonObj={name:ljl,d
本文实例分析了javascript中eval函数用法。分享给大家供大家参考。具体分析如下: eval()只有一个参数,如果传入的参数不是字符串,则直接返回这个参数。否则会将字符串当成js代码进行编译,如果编译失败则...
eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了
eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。 需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会...
如果参数是Javascript语句,eval()将执行 Javascript 语句。 语法 eval(string) 参数 描述 string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 <!...
如果参数是Javascript语句,eval()将执行 Javascript 语句。 语法 复制代码 代码如下: eval(string) 参数 描述 string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的...
eval定义和用法 eval() 函数把字符串按照 PHP 代码来计算。 该字符串必须是合法的 PHP 代码,且必须以分号结尾。 如果没有在代码字符串中调用 return 语句,则返回 NULL。如果代码中存在解析错误,则 eval&#...
先来说eval的用法,内容比较简单,熟悉的可以跳过eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。 需要特别注意的是对象声明...
1)介绍javascript中的eval函数的用法 (2)如何在函数内执行全局代码 ►先来说eval的用法,内容比较简单,熟悉的可以跳过。 eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行...
语法:[result = ]eval_r(expression_r) expression_r 为任意有效 VBScript 表达式的字符串 示例: 代码如下: response.Write(eval_r(“3+2”)) ‘输出 5 “3+2” 使用引号括起来,表示是一个字符串,但是在 Eval ...
要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 返回值 通过计算 string 得到的值(如果有的话)。 说明 该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作...
eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句。eval函数将把最后一个表达式或者语句所包含的值或引用作为返回值。 举例说明 eval...
定义和用法 eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。 语法 eval(string)...通过计算 string 得到的值(如果有的话)。...如果参数中没有合法的表达式和语句,则抛出 SyntaxEr