函数|技巧|运算
这是一个特殊的内建函数eval包括了运算式子为其参数,运算元,并回传一个值. 这函数对于运算一个表示的数值字串而言非常有用,举例来看,从FORM所输入的值总是字串,但你也许想要拿来运算,那我该怎么办??
下面的这一个例子包函了输入的文字栏位,应用的运算函数和显示结果的另一区块.假如你打了一个数值运算式在第一个栏位,并且按下了按钮,运算式便会开使运算,
<SCRIPT>
function compute(obj) {
obj.result.value = eval(obj.expr.value)
}
</SCRIPT>
<FORM NAME="evalform">
Enter an expression:
<INPUT TYPE=text NAME="expr" SIZE=20 >
<BR>
Result: <INPUT TYPE=text NAME="result" SIZE=20 >
<BR>
<INPUT TYPE="button" VALUE="Click Me"
>
</FORM>
以下是原始语法
<HTML>
<HEAD>
<TITLE>浏览器的状态栏</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<SCRIPT language="JavaScript">
<!-- Hide
function statbar(txt) {
window.status = txt;
}
// -->
</SCRIPT>
<CENTER></CENTER>
<CENTER><B><FONT COLOR="#0000FF"></FONT></B></CENTER>
<P><FORM>
<P><FONT COLOR="#000000"> <INPUT type="button"
name="look" value="显示!"
> <INPUT
type="button" name="erase" value="清除!"
></FONT>
<BR></FORM>
<CENTER><FONT COLOR="#000000"> </FONT></CENTER>
</BODY>
</HTML>
在这个例子中我们建了二个按钮,此二个按个均会去呼叫 statbar(txt) 。函数中的 txt 表 示此函数将经由函数呼叫时传一个变数值进来 (我们叫 txt但它可代表任意不同的值)你可以见到在产生按钮的 <form> 标 签中,呼叫到函数statbar(txt)在此我们就不再写成 txt 。
直接把要显示在状态列上的文字写上去,于是我们可以见到这样的效果,变数 txt 经由 'Value' 中得它的值,然后传入所呼叫的函数中。所以当你按"显示"的按钮时,statbar(txt) 函数被呼叫,然后 txt 将读入字串"嗨 这是状态列讯息" 并且传入函数中,这种经由变数传递值的方式,可以使函数相当具有可变性。
接着来看第二个按钮"清除" 它也呼叫同样的函数,我们并不需要因为传递参数的不同而言两个不同的函数。所以现在我们可以来看看statbar(txt) 这个函数做些什么了,其实它相当简单。你只要将 txt 所要传的文字内容指定给 window.status 这个变数就可以了。即是 window.status =txt,而在清除状态列的时候,只是将空字串写入即可。不过要注意的是必须使用单引号及双引号来区别,这样才容易区分。