将数字乘以数字

时间:2013-03-24 22:13:34

标签: javascript

尝试解决我正在研究的一些JavaScript代码。我看到的是这样的事情:

var myVariable = "X";
var result = myVariable * 6;

来自C#背景,这对我来说是新的。有人能给我一个关于这里发生了什么的快速入门书吗?我猜测结果将等于字母表中的字母位置乘以6,我是否正确?

3 个答案:

答案 0 :(得分:2)

结果将是NaN,因为“X”不是数字;将字符串与数字相乘将始终返回NaN

更多信息:http://es5.github.com/

  

*运算符执行乘法运算,生成其操作数的乘积。乘法是可交换的。由于精度有限,乘法在ECMAScript中并不总是关联的。

     

浮点乘法的结果由IEEE 754二进制双精度算法的规则控制:

     
      
  • 如果任一操作数为NaN,则结果为NaN。
  •   

如果您想获得英文字母中的字母位置,请尝试this

myVariable.toUpperCase().charCodeAt(0) - 65;

答案 1 :(得分:2)

  

我猜测结果将等于字母表中的字母位置乘以6,我是否正确?

没有。 JS是弱类型的,并且隐式地对值进行类型化以匹配运算符(此处为multiplicative one)。在这种情况下,字符串"X"将为converted to a number - 导致NaN,因为它没有有效的数字文字。 result也是NaN

要获得字母表中的排名,请使用parseInt function非十进制基数(parseInt("X", 36)-10)或charCodeAt string method"X".charCodeAt(0)-65)。

答案 2 :(得分:1)

我认为让字符s重复n次的最简单方法是:

Array(n+1).join(s)

再次阅读您的问题:将s的第一个字母的字码乘以n

s.charCodeAt(0) * n

获取与相乘的charcode对应的字符:

String.fromCharCode(s.charCodeAt(0) * n)