JS Vars - 添加

时间:2009-10-27 13:02:13

标签: javascript variables

我的JavaScript中有两个变量'a'和'b',我想将它们加在一起 ​​- 我假设这段代码:

var a = 10;
var b = 30
var varible = a + b;

这个,把两个数字放在一起......任何想法为什么......结果应该是40?

6 个答案:

答案 0 :(得分:4)

你可能有字符串而不是整数。那是你的代码真的是这样的:

var a = "10";
var b = "30";
var c = a + b; // "1030"

several ways将字符串转换为整数:

a = parseInt(a, 10);  // Parse the string
b = b * 1;            // Force interpretation as number

答案 1 :(得分:2)

new是一个保留字,我在任何情况下都会使用别的东西。

使用正常的变量名c,它对我有用:

var a = 10;
var b = 30
var c = a + b;
alert(c);

做了预期并提醒40

答案 2 :(得分:1)

new是JavaScript中的关键字。你不应该用它来声明你的变量或函数。将变量名称从new更改为其他内容

答案 3 :(得分:1)

你确定你没有这样做:

var a = '30';
var b = '40';

在这里,我将'30'显示为字符串而不是数字,我希望“+”运算符能够连接两个字符串。由于这是一个人为的代码,您可能无法完全确定您的变量最初分配的位置或它们具有的类型。您可以这样检查:

var a = '30';
var b = '40';
alert( typeof(a) + '\n' + typeof(b) );

如果其中任何一个说'对象'或'字符串'而不是'数字',这就是你的问题。这种情况可能会发生,你没想到的是输入。假设你有这样的代码:

<input id="a" value="30" />
<input id="b" value="40" />
<script language="javascript">
    var a = document.getElementById('a').value;
    var b = document.getElementById('b').value;
</script>

这里,文本输入的值最初总是一个字符串。

如果您想首先将变量转换为数字,则应使用myVar - 0强制数字操作或更正式的parseInt()或{{1函数(不要忘记parseFloat()的基数参数)。并始终在结果上查看parseInt()

答案 4 :(得分:1)

我真的很惊讶,直到现在还没有人提出明显的问题:使用JavaScript“投射”(我在引号中设置它,因为它不是真正的投射)。

var a = "1"; // string
var b = Number(a); // number
var c = String (b); // string again

a + b; // "11"
b + a; // 2
a + c; // "11"

现在,为什么这不是真正的演员?因为您不创建“number”类型的新变量,而是创建一个新的“Number”对象,并使用可能是数字的东西对其进行初始化。

答案 5 :(得分:0)

一个或两个是字符串。如果你从HTML输入或其他东西获得值,他们肯定是。使用parseInt确保它们都是整数:

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

此外,'new'是一个关键字。您不能将其用于变量名称:)