这个字符串是如何变成一个数字的?

时间:2015-07-09 20:10:52

标签: javascript

这是我正在运行的代码

var degFahren = (prompt("Enter the degrees fahrenheit"));
var degCent;

degCent = 5/9 * (degFahren - 32);
document.write(degFahren + "\xB0 fahrenheit is " + degCent + "\xB0    centigrade<br/>");

if (degCent <0) {
document.write("That's below the freezing point of water!");
}
if (degCent >= 100) {
document.write("That's above the boiling point of water!");
}

字符串被转换为数字是我想要的,但为什么以及如何发生?我从未声明过parseFloat或在提示符周围包裹了一个数字

2 个答案:

答案 0 :(得分:3)

执行-时,javascript会尝试将变量解释为数字。这与+形成对比,如果变量是字符串或数字(concat与add),它将执行不同的操作。

这种事情一直都是用javascript发生的。

示例:

"1" - 1 // outputs 0
"a" - 1 // NaN
"1" + 1 // "11"
1 + 1   // 2

答案 1 :(得分:1)

这是一行:

degCent = 5/9 * (degFahren - 32);

简短的回答是,当您在-上使用degFahren运算符时,JavaScript会自动将其转换为数字,然后将您的操作结果(另一个数字)放入degCent

长答案在The Abstract Equality Comparison Algorithm