Javascript - 不了解变量的数据类型

时间:2016-07-20 19:03:31

标签: javascript casting

我有以下内容:

this.replaceBand1 = "1";
...
var replaceEndValue = Integer.valueOf(this.replaceBand1);
replaceBeginValue = replaceEndValue + 1;
//what is going on?
var type1 = typeOf replaceEndValue;
var type2 = typeOf replaceBeginValue;
log.debug("replaceEndValue: " + replaceEndValue + " " + type1);
log.debug("replaceBeginValue: " + replaceBeginValue + " " + type2);
...
setValue(column1, replaceEndValue);
setValue(column2, replaceBeginValue);

我的预期结果:replaceBeginValue将等于2,我可以将其传递给需要整数的函数setValue。

实际结果:replaceEndValue有效,replaceBeginValue不起作用。

第一个调试显示 - replaceEndValue: 1 object
第二个调试显示 - replaceBeginValue 2 string

我不知道为什么replaceBeginValue是一个字符串。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您需要parseInt而不是Integer.valueOf。函数parseInt返回int基元类型。

如果你希望replaceBeginValue等于2,你需要这样的东西:

this.replaceBand1 = "1";
...
var replaceEndValue = parseInt(this.replaceBand1);
replaceBeginValue = replaceEndValue + 1;

...

注意:Integer.valueOf适用于Java而非JavaScript。