有一个我不明白的功能
function getDecimal(num) {
var str = "" + num;
var zeroPos = str.indexOf(".");
if (zeroPos == -1) return 0;
str = str.slice(zeroPos);
return +str;
}
alert( getDecimal(12.5) ); // 0.5
alert( getDecimal(1.2) ); // 0.2
为什么var str нужные запятые и + num ??我仍然不明白这部分发生了什么return +str(我知道它在小数点前添加了一个零,但我不明白如何。据我了解,有一个一元加号表示数字是正数)
让我们分部分分析:
1 行:我们将数字带到该行。例如: it was
.5now"0.5",添加零,因为它被.5视为一个数字并以这种形式赋予字符串。2 line:我们正在寻找分隔小数部分的线中的一个点。
indexOf返回遇到字符或-1没有字符的索引。第三行:检查行中是否有一个点。如果不是,那么这个数字很可能是一个整数(很可能,因为它可能根本不是一个数字,
NaN所以没有检查)4 line:从点字符开始分割行。例如:是
"0.5" => ".5"第 5 行:将字符串转换为数字
".5" => 0.5