javascript - 为什么获取value值进行加法运算的时候数字会相连,其它运算不会?
PHPz
PHPz 2017-04-11 11:56:25
[JavaScript讨论组]

详情:



 
   事件  
   
  
 
    
   
    
     
      
 

如代码所示是个计算器功能,但是相加的时候会出现相连如:1+2=12!这样~其它运算就不会~为什么!我刚学js不是很懂~

PHPz
PHPz

学习是最好的投资!

全部回复(3)
大家讲道理

获取到的值是字符串类型 // 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);
天蓬老师
<body>
   <input type='text' id='txt1' /> 
   <select id='select'>
        <option value='+'>+</option>
        <option value="-">-</option>
        <option value="*">*</option>
        <option value="/">/</option>
   </select>
   <input type='text' id='txt2' /> 
   <input type='button' value=' = 'onclick="count()" /> <!--通过 = 按钮来调用创建的函数,得到结果--> 
   <input type='text' id='fruit' />   
 </body>

这段代码中,我建议作者把input的text类型改成number,然后在count函数中采用1楼leonleung的代码,这样这个小型计算器就比较完美了。

高洛峰

原因有两点:
1.input获取的value是字符串
2.js是弱数据类型,在运算中会自动转换

只有+这个运算符是既可以在数字中使用也可以在字符串中使用,所以会出现'1'+'2'='12',而1*2=2是因为字符串'1'在*运算中会自动转化成数字1,所以计算是正确的。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号