有的时候获取到的数值是 string 类型可以转换为number 但有时会得到string类型的表达式,然后发现了eval()这个函数很方便啊
===================================================
引用
定义和用法
eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。
如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。
实例
执行JavaScript代码或表达式:
<script>
eval("x=10;y=20;document.write(x*y)");
document.write("<br>" + eval("2+2"));
document.write("<br>" + eval(x+17));
</script>
eval("x=10;y=20;document.write(x*y)");
document.write("<br>" + eval("2+2"));
document.write("<br>" + eval(x+17));
</script>
==============================================================================
写了一个计算器用了 用eval() 获取显示的表达式 计算结果
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> #box{ width: 406px; height: 500px; border: 1px solid black; margin: 50px auto; } #screen{ width: 100%; height: 100px; font: 20px ; text-align: right ; /*overflow: hidden;*/ } #top,#bottom { width: 100%; height: 49px; border-bottom: 1px solid black; float: left; } #number{ width: 306px; float: left; } #mark{ width: 100px; /*height: 00px;*/ float: left; } #number div{ width: 100px; height: 100px; border: 1px solid black; float: left; } #mark div{ height: 100px; border: 1px solid black; } .center { text-align: center; font: 20px/100px 'simhei'; } </style> </head> <body> <div id="box"> <div id="screen"> <div id="top"></div> <div id="bottom"></div> </div> <div id="number" class="center"> <div value='1'>1</div> <div value='2'>2</div> <div value='3'>3</div> <div value='4'>4</div> <div value='5'>5</div> <div value='6'>6</div> <div value='7'>7</div> <div value='8'>8</div> <div value='9'>9</div> </div> <div id="mark" class="center"> <div value='+'>+</div> <div value='-'>-</div> <div value='='>=</div> </div> </div> <script type="text/javascript"> var num = document.getElementById('number'); var number = num.getElementsByTagName('div'); var mark = document.getElementById('mark').getElementsByTagName('div'); var screen = document.getElementById('screen'); var top1 = document.getElementById('top'); var bottom = document.getElementById('bottom'); addClick(number); addClick(mark); function addClick(obj) { for (var i = 0; i < obj.length; i++) { obj[i].onclick = function () { if (this.innerHTML== '=') { // 点击 = 获得下半个屏幕显示的字符串 如'9+9' var str = bottom.innerHTML; // eval()计算字符串表达式的值 var result = eval(str); // 将表达式 显示在上半屏幕 // top.innerHTML = str; top1.innerHTML = bottom.innerHTML + '='; //清空后只显示结果 bottom.innerHTML = result; }else{ //点击数字 拼接 bottom.innerHTML += this.innerHTML; } } } // alert(number[i].getAttribute('value')); } function pro() { // body... } </script> </body> </html>