为了账号安全,请及时绑定邮箱和手机立即绑定

这里的加法运算,“+”是不是成了字符连接符,为什么其他运算都可以正常进行,就这个是把两个数连接起来输出呢?

  function sub2()                     //定义函数

 {

    var a = prompt("请输入前式:");

    var b = prompt("请输入后式:");


    var s = prompt("选择运算:");

    switch(s){

        case '-':

            sub=a-b;

            alert("a和b的差:"+sub);

            break;

        case '+':

            sub=a+b;

            alert("a和b的和:"+sub);

            break;

        case '*':

            sub=a*b;

            alert("a和b的积:"+sub);

            break;

        case '/':

            sub=a/b;

            alert("a和b的商:"+sub);

            break;

        default:

            alert("输入错误!");

            break;

    }

 }


正在回答

2 回答

这其实是JavaScript为人诟病的一个地方,因为是动态类型的语言,每一个变量其实可以调有valueOf()和toString();这些方法交给运行环境去选择,通常在数值运算里面会优先调用valueOf();在字符串运算中会优先调用toString();比如这里面的+的运算符前面是一个字符串,所以就调用的toString()方法;


1 回复 有任何疑惑可以回复我~
#1

I_can 提问者

非常感谢!
2017-05-02 回复 有任何疑惑可以回复我~

试了一下,你用parseInt把prompt包起来就没问题了



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这里的加法运算,“+”是不是成了字符连接符,为什么其他运算都可以正常进行,就这个是把两个数连接起来输出呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信