获取到的值是字符串类型 // one two three 两个字符串用+运算符相连接 // '1'+'2' -> '12' 所以你的根本问题在于要将获取的值转为数值类型
var one=parseInt(document.getElementById("txt1").value);
var two=parseInt(document.getElementById("select").value);
var three=parseInt(document.getElementById("txt2").value);
获取到的值是字符串类型 // one two three
两个字符串用+运算符相连接 // '1'+'2' -> '12'
所以你的根本问题在于要将获取的值转为数值类型
这段代码中,我建议作者把input的text类型改成number,然后在count函数中采用1楼leonleung的代码,这样这个小型计算器就比较完美了。
原因有两点:
1.input获取的value是字符串
2.js是弱数据类型,在运算中会自动转换
只有+这个运算符是既可以在数字中使用也可以在字符串中使用,所以会出现'1'+'2'='12',而1*2=2是因为字符串'1'在*运算中会自动转化成数字1,所以计算是正确的。