是否可以在javascript中用字符串除数?

时间:2014-10-09 12:04:13

标签: javascript

其实我正在尝试下面这个......

<!DOCTYPE html>
<html>
<body>
<p>A number divided by a non-numeric string becomes NaN (Not a Number):</p>

<p id="demo"></p>

<script>
var d = "10";  //typeof d is string
document.getElementById("demo").innerHTML = 100/d; 
// or document.getElementById("demo").innerHTML = 100/"10";
</script>

</body>
</html>

输出它给我的感觉..

A number divided by a non-numeric string becomes NaN (Not a Number):

10

请解释一下为什么会这样。

谢谢..

3 个答案:

答案 0 :(得分:3)

一元运算符将尝试将字符串转换为数字。如果字符串不能转换为数字,它只会产生NaN。

如果您尝试以下操作,您会注意到相同的内容,它将从十六进制转换为10:

100/"0xA"

答案 1 :(得分:1)

如果其中一个操作数是字符串,JavaScript将首先尝试将其转换为数字(即:“5”变为5),或者如果不成功,则返回表达式的NaN。

这就是100 /“10”给出10而不是NaN的原因。

答案 2 :(得分:0)

添加+将变量转换为数字:

var d = "10";  //typeof d is string
document.getElementById("demo").innerHTML = 100 / +d;
// -----------------------------------------------^-- 

相反,您可以进行typeof检查:

if (typeof d !== 'number') {
    // ...
}