求助如何用 js 计算字符串数学公式生成结果

JavaScript019

求助如何用 js 计算字符串数学公式生成结果,第1张

<input type="text" id="text1" value="4" />

<input type="text" id="text2" value="9" />

<input type="text" id="text3" value="5" />

<input type="text" id="text4" value="6" />

<input type="text" id="text5" value="2" />

<input type="button" value="计算" onclick="func()" />

<script type="text/javascript">

function func() {

var str = "(A+B+C)*D/E"

var A = parseFloat(document.getElementById("text1").value)

var B = parseFloat(document.getElementById("text2").value)

var C = parseFloat(document.getElementById("text3").value)

var D = parseFloat(document.getElementById("text4").value)

var E = parseFloat(document.getElementById("text5").value)

var num = eval(str)

var a=1

var b=2

var c=a+b

改为:

var a=1

var b=2

var c=a-1+b+1

或者下面的那种

<script>

function s11(i){

obj=eval("box"+i)

obj.style.display="block"

obj.style.left=event.x

obj.style.top=event.y+20

}

function s22(i){

obj=eval("box"+i)

obj.style.display=""

}

</script>

<a class="a1" href="#"><img src="jj/img/bz.gif" onmouseover="s11(1)" onmouseout="s22(1)" /></a>

因为js中变量是可以任意赋值的(不用担心类型),但是int型一旦被改为字符串后,在调用int的加法运算时,就会变成了字符串的连接运算。如下所示:

<script language="javascript">

<!--

var i=1

alert(i+1)//结果为2

var j="1"

alert(j+1)//结果为11

//-->

</script>

此时如果想要将j转换为int并且执行加法,需要将j强制转换为int,具体方法如下:

alert(parseInt(j)+1)

此时的结果就会是2了。