我从表达返回true
(我选择1==1
)开始,在控制台为什么parseInt()不会将“true”转换为数字,而相乘?
cosole.log(1==1);
它记录true
写的。现在我想将它转换为整数(1
),敷在parseInt()
console.log(parseInt(1==1));
它记录NaN
。看起来它试图将1==1
转换为字符串,然后将其转换为数字。 那我就简单地以1
console.log((1==1)*1);
它记录1
乘1==1
。
为什么在第一种情况下将其转换其转换true
字符串转换成整型前(导致NaN
),而我想将其转换为字符串,并把它转换true
直接整数第二种情况?我预计true*1
也将是NaN
。
你可能想观看这部影片:https://www.destroyallsoftware.com/talks/wat – gontrollez
parseInt函数使得第一个参数字符串(“真” ),然后尝试将字符串转换为数字(为什么你会得到NaN)。 – scragar
'true * 1'是'1',所以实际上你只是在执行'parseInt(1)' – Carpetsmoker