关于eval()

当你在写一个HTML程序时需要把string型的数据转成int型数据后再进行四则混合运算时,例如:
var a = "12"; var b = "23";
alert(a+b);
上例的输出是"1223"这个只能是字符串的连接,若是要用到eval(),是不是老是会报NaN这样的错呢?
我想一定是的,因为我不是这样的情况,原因是因为你没有弄清楚eval()这个函数的使用。

我的程序中有一个这样的实例:我们从前台的文本框中取得数据,然后把这些数据得的数据进行四则运算。

1 nowYear = document.getElementById("TxtStyleTwoY").value;
2 nowMonth = document.getElementById("TxtStyleTwoM").value;
3 nowDay = document.getElementById("TxtStyleTwoD").value;

四则运算:

 1 if (nowYear == startY)
 2             {
 3                 if (nowMonth > startM)
 4                 {
 5                     for (m = startM; m < nowMonth; ++m) // 计算整月共有多少天
 6                     {
 7                         days = days + modays[m];
 8                     }
 9                     days += (nowDay - startD);                    
10                     document.getElementById("answer").value=days+" days at "+nowYear+" 年 "+nowMonth+" 月 "+nowDay+" 日.";
11 } 12 else if (nowMonth == startM) 13 { 14 if (nowDay >= startD) 15 { 16 days = days + nowDay - startD; // 计算尾月的天数 17 document.getElementById("answer").value=days+" days at "+nowYear+" 年 "+nowMonth+" 月 "+nowDay+" 日."; 18 } 19 else 20 document.getElementById("answer").value = "Date Error!"; 21 22 }

 

上面是直接取得字符串,其实我们只需要对上面的代码做一个小小的转换,程序就可以完美运行:

1 nowYear = eval(document.getElementById("TxtStyleTwoY").value);
2 nowMonth = eval(document.getElementById("TxtStyleTwoM").value);
3 nowDay = eval(document.getElementById("TxtStyleTwoD").value);

不知道我有没有说清楚,文笔不是很好,读者不要见怪了。。。*_*

 

 

 

 

你可能感兴趣的:(eval)