Chrome:格式说明符打印 NaN 而不是数字
Chrome: format specifier prints NaN instead of number
参考 chrome 开发工具 documentation,我在 chrome 调试器控制台中写了一个简单的片段,就像这样 -
var age = prompt("How old are you?");
console.log(age); //10
console.log('You are %d years old', age); //You are NaN years old
奇怪的是最后一行打印的是 NaN
而不是 10。有什么明显的我遗漏的吗?
prompt
总是 returns 一个字符串¹; %d
需要一个数字,显然不会强制。先将年龄转换成数字,例如
var age = +prompt(/*...*/);
// or
var age = parseInt(prompt(/*...*/, 10));
// or any of the other ways to convert strings to numbers
¹ (或 null
如果用户取消,在某些浏览器上,包括 Chrome)
参考 chrome 开发工具 documentation,我在 chrome 调试器控制台中写了一个简单的片段,就像这样 -
var age = prompt("How old are you?");
console.log(age); //10
console.log('You are %d years old', age); //You are NaN years old
奇怪的是最后一行打印的是 NaN
而不是 10。有什么明显的我遗漏的吗?
prompt
总是 returns 一个字符串¹; %d
需要一个数字,显然不会强制。先将年龄转换成数字,例如
var age = +prompt(/*...*/);
// or
var age = parseInt(prompt(/*...*/, 10));
// or any of the other ways to convert strings to numbers
¹ (或 null
如果用户取消,在某些浏览器上,包括 Chrome)