Meteor.js是加号运算符

时间:2015-07-11 03:17:19

标签: math operator-keyword

我正在编写一个简单的程序来教授使用Meteor的输入,表单,模板和会话的基础。

 if (Meteor.isClient) {

 Session.set('value',0);


 Template.hello.helpers({

 result: function(){

  return(Session.get('value'));
}
});


Template.hello.events({

 'submit form': function(event) {

  event.preventDefault();

  var s1=event.target.num1.value;
  var s2=event.target.num2.value;

  var s = s1 - s2;

 Session.set('value',s);

}

}); }

问题是当操作符更改为+时,它似乎连接了两个数字。其他基本操作员工作正常。这是一个错误吗?这是我可以教给学生的最简单的例子,我被卡住了。

我正在使用Mac 10.6.8和Meteor 1.1.0.2

2 个答案:

答案 0 :(得分:0)

在没有看到JSFiddle的情况下很难分辨,但我敢打赌,问题在于其中一个值或两者都是作为字符串传递的。

加号是JS的连接运算符,如果两者都不是数字而另一个是字符串,则会从数字到字符串执行类型强制。 - 运算符将以另一种方式执行它,并将字符串转换为数字。

检查传入的数据类型并确保它们都是数字。如果不是,请使用parseInt将其转换为数字。

答案 1 :(得分:0)

string + string = string。

试试这个:

var a = Int(arc4random_uniform(5))
var b = Int(arc4random_uniform(5))
var c = Int(arc4random_uniform(5))
var d = Int(arc4random_uniform(5))

从DOM中获取数字时,始终将字符串转换为数字。