百度
360搜索
搜狗搜索

eval函数是什么意思,在JS中eval函数是什么意思详细介绍

本文目录一览: eval是什么意思

"eval"是一个计算机编程术语,它代表"evaluate"(评估)的缩写。
在不同的编程语言中,"eval"具有不同的含义和功能,但通常它是用于执行动态代码或计算字符串表达式的一种机制。
在许多编程语言中,"eval"函数接受一个字符串参数,该字符串包含要执行的代码或表达式。该函数会将字符串解析为可执行的代码,并返回执行结果。这使得程序能够在运行时动态地生成和执行代码。
例如,在JavaScript中,可以使用"eval"函数来执行字符串中的JavaScript代码。这对于动态生成代码或在运行时根据特定条件执行不同的代码非常有用。然而,由于"eval"可以执行任意代码,它也可能存在安全风险,并且可能被滥用。
例如,在Python中,"eval"函数可以解析并计算一个字符串作为Python表达式的值。需要注意的是,在Python中使用"eval"时要谨慎,特别是当处理用户输入时,因为它可能导致安全风险。使用"eval"函数执行用户提供的代码可能会使恶意用户注入恶意代码或执行危险操作。
例如,在Ruby中,"eval"方法用于解析和执行一个字符串作为Ruby代码。
因此,在实际应用中,需要小心使用"eval"函数,并确保对输入进行适当的验证和过滤,以防止潜在的安全漏洞。需要注意的是,"eval"的具体用法和行为取决于所使用的编程语言和上下文,因此在具体的编程环境中查阅相关文档和参考资料是很重要的。

eval是什么意思

Eval的意思是要计算的字符串。
eval可以将字符串生成语句执行,和SQL的exec()类似。eval是Javascript内置函数,用于计算字符串表达式的值。例如eval(“2+3”)返回的是5。Eval(stringy)函数可计算某个字符串,并执行其中的JavaScript代码。
参数:string,描述:要计算的字符串,其中含有要计算的Javascript表达式或要执行的语句。jscript中的用法很相似。
Eval函数
eva函数允许动态执行JScript源代码。传递给eval方法的代码执行时所在的上下文和调用eval方法时的上下文一样。请注意,在eval语句中定义的新变量或类型对于封闭程序是不可见的。除非将字符串”unsafe”传递为第二个参数。
在Flash4中,还可以使用eval动态地设置和检索变量值或实例名称。否则,传递至eval方法的代码在受限安全上下文中执行。受限安全上下文禁止访问系统资源,如文件系统、网络或用户界面。如果代码试图访问这些资源,则会产生安全异常。
当eval的第二个参数为字符串unsafe时,传递给eval方法的代码在调用代码所在的安全上下文中执行。第二个参数是区分大小写的,因此,字符串“Unsafe“或“UnSAfE“不会重写受限安全上下文。

eval 什么意思?

eval,执行字符串的内容
eval("document.all.t"+t+".className='clicked';");
比如t=2这一句意思就是
document.all.t2.className='clicked';
eval 函数允许 JScript 源代码的动态执行。
1. 和其他解释性语言一样,javascript 同样可以解释运行由javascript源代码组成的字符串,javascript 通过eval()来完成。
2. eval() 其实是一个函数,是javascript很早版本中就已经存在,但是javascript设计者和解释器对其进行了许多的限制,看起来eval更像一个运算符。但是作为用于动态执行代码,eval存在这样的问题,解释器无法对动态代码做进一步的优化。如果将它看做一个函数,那它是可以被赋予其他名字的:
var A = eval;
var B = A;
如果是这样的话,那么解释器就无法优化调用B()的函数了。因此设计者赋予eval一些运算符的特性(作为保留字)之后这些问题得到解决。当然它还有更多的限制,留待读者慢慢体会。
3. Eval 只有一个参数,如果传入的不是字符串的话,它直接返回这个参数;如果是字符串,那么首先会进行编译,如编译失败则爆出语法错误;编译成功则执行代码。更主要的是eval可以使用调用它的变量作用域环境,也就是说它查找的变量或者新增的变量作用域跟代码的完全一样。
如:
function A()
{
eval('var x ;');
eval("x=1"); //在一个函数中定义或者更改,那就是针对局部变量。
}
4. 全局eval
eval 可以动态执行代码,并申明或者改变变量,当然可以对全局变量进行上述操作。如
var globalEval = eval; //定义全局eval函数别名
var a ='global', b = 'global'; //全局变量
function c()
{
var a = 'local'; //局部变量
eval('a+="changed"'); //直接更改局部变量的值
return a; //返回更改后的局部变量
}
function d()
{
var b = 'local';
globalEval("b+='changed'");
return b;
}

console.log(c(), a); //localchanged global
console.log(d() , b) //local globalchanged
更强的是,全局的eval还可以更改局部变量的能力,不过这也是javascript优化的一个大问题。 当然在严格模式下,eval更像一个运算符,不可以用别名来覆盖eval。

eval()函数是什么意思?

计算一个表达式的值并返回结果。
[result = ]Eval(expression)
参数
result
可选项。是一个变量,用于接受返回的结果。如果未指定结果,应考虑使用 Execute 语句代替。
expression
必选项。可以是包含任何有效 VBScript 表达式的字符串。
说明
在 VBScript 中,x = y 可以有两种解释。第一种方式是赋值语句,将 y 的值赋予 x。第二种解释是测试 x 和 y 是否相等。如果相等,result 为 True;否则 result 为 False。Eval 方法总是采用第二种解释,而 Execute 语句总是采用第一种。
注意 在Microsoft? JScript? 中不存在这种比较与赋值的混淆,因为赋值运算符 (=) 与比较运算符 (==) 不同。
下面的例子说明了 Eval 函数的用法:
Sub GuessANumber
Dim Guess, RndNum
RndNum = Int((100) * Rnd(1) + 1)
Guess = CInt(InputBox("Enter your guess:",,0))
Do
If Eval("Guess = RndNum") Then
MsgBox "祝贺你!猜对了!"
Exit Sub
Else
Guess = CInt(InputBox("对不起,请再试一次",,0))
End If
Loop Until Guess = 0
End Sub

eval()的VBScript

Eval函数在VBScript脚本语言中的使用:
在VB脚本语言中,Eval函数具有两层意思,一是实现计算表达的值,即eval()函数可将字符串转换为代码执行,并返回一个或多个值;二是运行指定的代码。
实例:
dim
a,b,sum;
a
=
10;
b
=
20;
sum
=
25;
magbox
"10+20="&
eval("a+b")
msgbox
"25
=
(10+20)?"
&
eval("sum=a+b")

在JS中eval函数是什么意思

它的功能是把对应的字符串解析成JS代码并运行
比如说你现在要运行一个可变的方法
function
name1(){……}
function
name2(){……}
var
m="name1";
eval(m+'()');//运行name1();
m='name2';
eval(m+'()');//运行name2();

大家知道asp.net那个读取数据库表字段的函数eval是什么意思?

Eval方法实际上是TemplateControl的,而System.Web.UI.Page和System.Web.UI.UserControl都继承于TemplateControl,所以我们可以在Page和UserControl上直接调用个方法。
Page.Eval方法可以帮助我们更好的撰写数据绑定表达式,在ASP.NET 1.x时代,数据绑定表达式的一般形式是:
%# DataBinder.Eval( Container , “DataItem.Name”) %
而在ASP.NET 2.0中,同样的代码,我们可以这样写:
%# Eval( “Name” )%
ASP.NET 2.0是怎么实现的呢?我们先从Eval方法来研究,通过反射.NET Framework 2.0类库的源代码,我们可以看到这个方法是这样实现的:
protected internal object Eval(string expression)
{
this.CheckPageExists();
return DataBinder.Eval(this.Page.GetDataItem(), expression);
}
第一行我们不必管,这是检查调用的时候有没有Page对象的,如果没有则会抛出一个异常。
关键是第二行:
return DataBinder.Eval(this.Page.GetDataItem(), expression);
Page.GetDataItem()也是2.0中新增的一个方法,用途是正是取代ASP.NET 1.x中的Container.DataItem。
看来不摸清楚GetDataItem()方法,我们也很难明白Eval的原理。GetDataItem的实现也很简单:
public object GetDataItem()
{
if ((this._dataBindingContext == null) (this._dataBindingContext.Count == 0))
{
throw new InvalidOperationException(SR.GetString(“"Page_MissingDataBindingContext“"));
}
return this._dataBindingContext.Peek();
}
我们注意到了有一个内部对象_dataBindingContext,通过查源代码发现这是一个Stack类型的东西。所以他有Peek方法。而这一段代码很容易看懂,先判断这个Stack是否被实例化,然后,判断这个Stack里面是不是有任何元素,如果Stack没有被实例化或者没有元素则抛出一个异常。最后是将这个堆栈顶部的元素返回。
ASP.NET 2.0用了一个Stack来保存所谓的DataItem,我们很快就查到了为这个堆栈压元素和弹出元素的方法:Control.DataBind方法:
protected virtual void DataBind(bool raiseOnDataBinding)
{
bool flag1 = false;//这个标志的用处在上下文中很容易推出来,如果有DataItem压栈,则在后面出栈。
if (this.IsBindingContainer)//判断控件是不是数据绑定容器,实际上就是判断控件类是不是实现了INamingContainer
{
bool flag2;
object obj1 = DataBinder.GetDataItem(this, out flag2);//这个方法是判断控件是不是有DataItem属性,并把它取出来。
if (flag2 && (this.Page != null))//如果控件有DataItem
{
this.Page.PushDataBindingContext(obj1);//把DataItem压栈,PushDataBindingContext就是调用_dataBindingContext的Push方法
flag1 = true;
}
}
try
{
if (raiseOnDataBinding)//这里是判断是不是触发DataBinding事件的。
{
this.OnDataBinding(EventArgs.Empty);
}
this.DataBindChildren();//对子控件进行数据绑定,如果这个控件有DataItem,则上面会将DataItem压入栈顶,这样,在子控件里面调用Eval或者GetDataItem方法,就会把刚刚压进去的DataItem给取出来。
}
finally
{
if (flag1)//如果刚才有压栈,则现在弹出来。
{
this.Page.PopDataBindingContext();//PopDataBindingContext就是调用_dataBindingContext的Pop方法
}
}
}

阅读更多 >>>  php小说网站源码,我自己想搭建一个小说网站,有那些步骤!最主要书源怎么获取!怎么获取书源!怎么获取书源!

Adams中函数eval()是什么意思?

它的功能是把对应的字符串解析成JS代码并运行
比如说你现在要运行一个可变的方法
function name1(){……}
function name2(){……}
var m="name1";
eval(m+'()');//运行name1();
m='name2';
eval(m+'()');//运行name2();

javaScript的一道题目,请高手看看.

for (var i = 1; i < 101; i++)
{
eval("a" + i.toString() + " = " + i.toString() + ";");
}
用 eval 的好处,就是 变量名 可以 用字符组合而成。
toString 是显式的 转为字符串。
Javascript中eval函数的用法
JavaScript有许多小窍门来使编程更加容易。其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。以下是它的说明
Eval 函数
功能:先解释Javascript代码,然后在执行它
用法:Eval(codeString)
codeString是包含有Javascript语句的字符串,在eval之后使用Javascript引擎编译。
举个小例子:
var the_unevaled_answer = "2 + 3";
var the_evaled_answer = eval("2 + 3");
alert("the un-evaled answer is " + the_unevaled_answer + " and the evaled answer is " + the_evaled_answer);
如果你运行这段eval程序, 你将会看到在JavaScript里字符串"2 + 3"实际上被执行了。所以当你把the_evaled_answer的值设成 eval("2 + 3")时, JavaScript将会明白并把2和3的和返回给the_evaled_answer。
这个看起来似乎有点傻,其实可以做出很有趣的事。比如使用eval你可以根据用户的输入直接创建函数。这可以使程序根据时间或用户输入的不同而使程序本身发生变化,通过举一反三,你可以获得惊人的效果。

网站数据信息

"eval函数是什么意思,在JS中eval函数是什么意思"浏览人数已经达到16次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:eval函数是什么意思,在JS中eval函数是什么意思的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!