【问题标题】:how to prevent chain when adding javascript variables containing numbers添加包含数字的javascript变量时如何防止链
【发布时间】:2011-11-25 12:41:17
【问题描述】:

如何防止 javascript 从字符串变量中解释我的数字变量?

var a = 100;
var b = -10
var c = a + b // 10-10 (string)

可以说我一直想要

var c = a + b = 100+(-10) = 90 (number)

【问题讨论】:

  • 我通常不会那样做,但是,wtf?!
  • c 将是一个数字,除非您执行 c = a + '' + b; 之类的操作

标签: javascript string int


【解决方案1】:

但是,在您的示例中,c 总是为 90;

var a = 100;
var b = "-10";
var c = a + b // "100-10" (string)

为了防止这种情况将字符串转换为整数;

var c = a + parseInt(b, 10); 

或使用一元+

var c = a + +b; 

【讨论】:

    【解决方案2】:

    您的代码示例...

    var a = 100;
    var b = -10
    var c = a + b // 90 (number) 
    

    ...除非操作数之一是String,否则不会这样做。在您的示例中,两者都是Number

    如果您在Strings 中确实有数字,则可以使用parseInt()(如果使用十进制,请不要忘记传递10 的基数)或者可能只是在String 前加上@987654328 @ 将其强制为Number

    【讨论】:

      【解决方案3】:

      您的代码运行良好。见here

      【讨论】:

        【解决方案4】:

        只要您添加的两个变量都是数字,JavaScript 将始终执行后者。

        【讨论】:

          【解决方案5】:

          如果您不确定变量是数字还是字符串,最简洁的方法是在前面加上 +

          var a = "100";
          var b = "-10";
          var c = +a + +b; // 90
          

          这从+"123" === 123 等开始有效。

          【讨论】:

            猜你喜欢
            • 2011-11-26
            • 1970-01-01
            • 2014-10-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-06-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多