在这种情况下,当n是函数中的数字参数时。为什么toString(2)
要n % 2
并返回除数余数?我以为toString只是将一个数字返回到一个字符串中。
+n.toString(2)
function toBinary(n) {
var toBinary2 = +n.toString(2)
return toBinary2
}
console.log(toBinary(2))
要Number#toString
的参数是一个基数。
对号码调用.toString(2)
将以二进制形式返回该号码。
二进制中的2
是10
,所以这就是为什么(2).toString(2)
返回10
。
为什么 toString(2( 会变成 n % 2 并返回除数余数?
toString 将基数作为参数,toString(2)
将数字转换为二进制等效字符串。
+Number(2).toString(2)
再次将二进制等效转换为数字,但不执行二进制到十进制的转换。
所以,+Number(2).toString(2)
=> +"10"
=> 10