Javascript中Eval函数的运用验证

比方

举个小例子:

举个小例子:

isNaN函数

复制代码 代码如下:

复制代码 代码如下:

复制代码 代码如下:

回来一个 Boolean 值,指明提供的值是不是是保留值 NaN (不是数字)。
NaN 即 Not a Number
isNaN(numValue)

var flower= function(){
var t=0,i=0;
for(;i<5000000;i++){
t++;
}
return t;
}

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);

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);

必选项 numvalue 参数为要反省是或不是为 NAN 的值。

flower 返回t的值
万一那个函数须要费用 2-3秒 。
经过 Memoization 函数,再度搜索同样的值时,直接获取事先缓存好的
value,马上回去;
Memoization 函数

设若您运转这段eval程序, 你将会看到在JavaScript里字符串”2 +
3″实际上被试行了。
故而当您把the_evaled_answer的值设成 eval(“2 + 3”)时,
JavaScript将会驾驭并把2和3的和再次回到给the_evaled_answer。
那个看起来就如有一些傻,其实能够做出很遗闻。举例动用eval你能够依照客户的输入直接开立函数。
那能够使程序依据时间或客商输入的例外而使程序本身产生变化,通过类比,你能够赢得惊人的意义。
在其实中,eval相当少被用到,但大概你见过有人利用eval来获取难以索引的靶子。
文档对象模型(DOM)的难题之一是:一时你要博得你必要的对象差相当少正是惨烈。
比如说,这里有一个函数询问顾客要转移哪个图象:调换哪个图象你能够用上边那个函数:
function swapOne()
{
var the_image = prompt(“change parrot or cheese”,””);
var the_image_object;
if (the_image == “parrot”)
{
the_image_object = window.document.parrot;
}
else
{
the_image_object = window.document.cheese;
}
the_image_object.src = “ant.gif”;
}
会同这个image标志:
[img src=”/stuff3a/parrot.gif” name=”parrot”]
[img src=”/stuff3a/cheese.gif” name=”cheese”]
请小心象那样的几行语句:
the_image_object = window.document.parrot;
它把八个图象对象敷给了多个变量。即使看起来有个别奇怪,它在语法上却毫无难点。
但当您有九二十个并非多少个图象时咋做?你只可以写上一大堆的
if-then-else语句,若是能象那样就好了:
function swapTwo()
{
var the_image = prompt(“change parrot or cheese”,””);
window.document.the_image.src = “ant.gif”;
}
噩运的是, JavaScript将会找有名字叫
the_image并不是您所企望的”cheese”大概”parrot”的图象,
于是你取得了错误新闻:”没听他们讲过二个名称为the_image的对象”。
万幸,eval能够帮您收获你想要的对象。
function simpleSwap()
{
var the_image = prompt(“change parrot or cheese”,””);
var the_image_name = “window.document.” + the_image;
var the_image_object = eval(the_image_name);
the_image_object.src = “ant.gif”;
}
倘若顾客在升迁框里填入”parrot”,在其次行里成立了三个字符串即window.document.parrot.
然后含有了eval的第三
行意思是: “给本身对象window.document.parrot” –
相当于你要的十二分图象对象。一旦您收获了那一个图象对象,你能够把
它的src属性设为ant.gif.
有一点点触目惊心?用不着。其实这一定有用,大家也时常利用它。
咱们平常在Javascript中间到Eval这么些函数,
有一点人认为这一个函数很奇异,能够把有个别字符串变的意义很强劲
在大家须求将惯常的字符串转变成具体的靶子的时候,就能用到这么些函数
eval 函数对作为数字表明式的贰个字符串举办求值,其语法为:
eval(expr)
这边 expr 是一个被求值的字符串参数。借使该字符串是三个表明式,eval
求该表明式的值;如果该参数代表一个或多少个 JavaScript 语句,那么 eval
实施这一个讲话。eval

设若您运转这段eval程序, 你将会看到在JavaScript里字符串”2 +
3″实际上被试行了。
于是当您把the_evaled_answer的值设成 eval(“2 + 3”)时,
JavaScript将会领会并把2和3的和重临给the_evaled_answer。
以此看起来就像有一些傻,其实能够做出很有趣的事。比如选拔eval你能够依照客商的输入直接开立函数。
那能够使程序依照时间或顾客输入的两样而使程序自身产生变化,通过类比,你能够获得惊人的成效。
在事实上中,eval很少被用到,但恐怕你见过有人利用eval来获得难以索引的指标。
文书档案对象模型(DOM)的难题之一是:不常你要博取你须要的对象大概就是惨重。
诸如,这里有一个函数询问顾客要转变哪个图象:转换哪个图象你可以用上边那一个函数:
function swapOne()
{
var the_image = prompt(“change parrot or cheese”,””);
var the_image_object;
if (the_image == “parrot”)
{
the_image_object = window.document.parrot;
}
else
{
the_image_object = window.document.cheese;
}
the_image_object.src = “ant.gif”;
}
会同那一个image标识:
[img src=”/stuff3a/parrot.gif” name=”parrot”]
[img src=”/stuff3a/cheese.gif” name=”cheese”]
请小心象那样的几行语句:
the_image_object = window.document.parrot;
它把一个图象对象敷给了一个变量。就算看起来某些奇异,它在语法上却毫无难点。
但当你有九14个并不是四个图象时咋办?你只可以写上一大堆的
if-then-else语句,若是能象那样就好了:
function swapTwo()
{
var the_image = prompt(“change parrot or cheese”,””);
window.document.the_image.src = “ant.gif”;
}
噩运的是, JavaScript将会搜索名字叫
the_image并不是您所愿意的”cheese”大概”parrot”的图象,
于是你获取了错误音信:”没传说过二个名叫the_image的对象”。
万幸,eval可以帮您获得你想要的对象。
function simpleSwap()
{
var the_image = prompt(“change parrot or cheese”,””);
var the_image_name = “window.document.” + the_image;
var the_image_object = eval(the_image_name);
the_image_object.src = “ant.gif”;
}
假诺顾客在提示框里填入”parrot”,在其次行里创造了叁个字符串即window.document.parrot.
然后含有了eval的第三
行意思是: “给作者对象window.document.parrot” –
也正是你要的充足图象对象。一旦您获得了那几个图象对象,你能够把
它的src属性设为ant.gif.
有一茶食惊肉跳?用不着。其实这一定有用,大家也不时使用它。
咱俩平时在Javascript中间到Eval那么些函数,
稍稍人认为这一个函数很奇异,能够把一些字符串变的作用很有力
在大家供给将一般的字符串调换成具体的靶子的时候,就能够用到这一个函数
eval 函数对作为数字表明式的三个字符串进行求值,其语法为:
eval(expr)
此处 expr 是两个被求值的字符串参数。如若该字符串是一个表明式,eval
求该表达式的值;假诺该参数代表八个或七个 JavaScript 语句,那么 eval
实施那一个讲话。eval

说明

复制代码 代码如下:

函数能够用来把二个日子从一种格式(总是字符串)转变为数值表达式或数字。

Eval 函数
功效:先解释Javascript代码,然后在实行它
用法:Eval(codeString)
codeString是包涵有Javascript语句的字符串,在eval之后接纳Javascript引擎编写翻译。
注释:
例子:eval(id + “_icon.src=”/imgs/collapse_up.gif'”);
id是事先设定的参数,而在双引号中的字符串则是急需编写翻译的
引用:

复制代码 代码如下:

function tophide(id) //id indicates menu
{
if (top.topframeset.rows == “31,*”)
{
top.topframeset.rows = “86,*”;
eval(id + “_icon.src=”/imgs/collapse_up.gif'”);
eval(id + “_icon.alt=’Collapse The Head'”);
head.style.display = “block”
}
else
{
top.topframeset.rows = “31,*”;
eval(id + “_icon.src=”/imgs/collapse_down.gif'”);
eval(id + “_icon.alt=’Expand The Head'”);
head.style.display = “none”
}
}

复制代码 代码如下: var
the_unevaled_answer = “2 + 3”; var the_evaled_answer = eval(“2 +
3”); alert(“the un-evaled answer is ” + the_unevaled_answer + ”
an…

函数能够用来把三个日期从一种格式(总是字符串)转换为数值表达式或数字。

Eval 函数
作用:先解释Javascript代码,然后在进行它
用法:Eval(codeString)
codeString是带有有Javascript语句的字符串,在eval之后选用Javascript引擎编写翻译。
注释:
例子:eval(id + “_icon.src=”/imgs/collapse_up.gif'”);
id是事先设定的参数,而在双引号中的字符串则是索要编写翻译的
引用:

复制代码 代码如下:

function tophide(id) //id indicates menu
{
if (top.topframeset.rows == “31,*”)
{
top.topframeset.rows = “86,*”;
eval(id + “_icon.src=”/imgs/collapse_up.gif'”);
eval(id + “_icon.alt=’Collapse The Head'”);
head.style.display = “block”
}
else
{
top.topframeset.rows = “31,*”;
eval(id + “_icon.src=”/imgs/collapse_down.gif'”);
eval(id + “_icon.alt=’Expand The Head'”);
head.style.display = “none”
}
}

借使值是 NaN, 那么 isNaN 函数再次来到 true ,不然重返 false 。
使用这一个函数的第一名气象是检查 parseInt 和 parseFloat 方法的输入值。
还应该有一种办法,变量能够与它自己进行比较。 如若相比的结果不等,那么它正是NaN 。 那是因为 NaN 是独占鳌头与自己不等的值。
isNaN函数用法示例:举例自个儿有二个textbox用于录入数字型的数目,在交付表单的时候我要证实该textbox中的值是不是为多少,那么我们能够动用isNaN函数。

var Memoize = function(fn, cache, refetch, obj){
cache = cache || {};//用来缓存结果
return function(){
var k = arguments[1] ? Array.prototype.join.call(arguments, ‘__’) :
arguments[0];//七个参数则有’__’分隔开
if (!(k in cache) || (refetch && cache[k] == refetch)) {
//借使不在缓存列表中,何况和加以的refetch值相等,重新去运算
cache[k] = fn.apply(obj || fn, arguments);
//obj参数可用来退换this指针
}
return cache[k];//重返结果
}
}

你恐怕感兴趣的小说:

  • PHP4实际行使经验篇(7)
  • Javascript中eval函数的采用格局与示范
  • 对JavaScript的eval()中动用函数的愈发探讨
  • javascript
    eval函数深远认识
  • 询问一些js的Eval函数
  • js中eval()函数和trim()去掉字符串左右空格应用
  • javascript中eval函数用法剖析
  • JavaScript中eval()函数用法详解

复制代码 代码如下:

Demo:

function checkValue()
{
if(isNaN(document.all.textbox.value))
{
alert(“请用数字录入!”);
return false;
}
}

New Document

isNaN的举世无双使用是为parseInt和parseFloat方法的输入值举办三个超前的检察,但这种回顾结果并不好。即使也许有点教课书上也那样说,以至于错误地认为其是贰个检查parseInt和parseFloat的重返值,那样都以不当的。

[Ctrl+A 全选 注:如需引进外界Js需刷新工夫实行]

parseInt与parseFloat是将叁个字符型按数字进行三个转化。但自己还会有错误管理的,假如你的输入值不是几个数字时,则parseInt和parseFloat再次来到贰个消息:“is
not
number”,但貌似的事态下大家都以对多个数字样式的字符串实行改变的,何人会无聊起转会非数字型的吗?所以你输入的参数是不是过关,能够先实行一遍isNaN检查的。

复制代码 代码如下: var flower=
function(){ var t=0,i=0; for(;i陆仟000;i++){ t++; } return t; } flower
重返t的值 假如那个函数必要费用 2-3秒 。 通…

但只要我们有意的以下行为,事先是无法用isNaN实行自己辩论的,数字开首中间含有字母时,假设用isNaN实行检讨是通可是的。

尽管是一个空白或是二个空格,而isNaN是做为数字0实行拍卖的,而parseInt与parseFloat是回去贰个谬误消息,那些isNaN检查不严密而变成的。
五个函数是单身的,并不会何人为何人而活着,isNaN与parseInt/parseFloat并从未关联。

发表评论

电子邮件地址不会被公开。 必填项已用*标注