d8 shell 的 console.log 是否支持格式说明符?
Does the d8 shell's console.log support format specifiers?
d8 是使用 V8 的 运行 JavaScript 程序的最小 shell。 console.log在d8中的实现是否支持格式specifiers/characters?我尝试使用格式说明符,它打印了说明符和变量值(如下所示)。
d8> for (i = 0; i < 10; i++) {console.log('Number is %d', i);}
Number is %d 0
Number is %d 1
Number is %d 2
Number is %d 3
Number is %d 4
Number is %d 5
Number is %d 6
Number is %d 7
Number is %d 8
Number is %d 9
undefined
我在这里看到一个类似的问题:https://github.com/nodejs/node/issues/10292 ...任何见解都会有所帮助。
从你的实验可以看出,d8不支持格式说明符。它不想支持任何不合法的东西 JavaScript.
说起来:JavaScript 有一段时间了“template literals”。因此,无需对 d8 或 console.log
提出任何要求,只要有字符串,您就可以执行以下操作:
let i = 42;
console.log(`Number is ${i}`);
let just_a_string = `1 + 2 = ${1+2}`;
console.log(just_a_string);
console.assert(just_a_string === "1 + 2 == 3");
如果您希望获得更高级的格式设置,例如 C 风格 %5d
,据我所知,您必须自己构建它。如果您对浮点数感兴趣,.toFixed
and .toPrecision
可能会对您有所帮助。
d8 是使用 V8 的 运行 JavaScript 程序的最小 shell。 console.log在d8中的实现是否支持格式specifiers/characters?我尝试使用格式说明符,它打印了说明符和变量值(如下所示)。
d8> for (i = 0; i < 10; i++) {console.log('Number is %d', i);}
Number is %d 0
Number is %d 1
Number is %d 2
Number is %d 3
Number is %d 4
Number is %d 5
Number is %d 6
Number is %d 7
Number is %d 8
Number is %d 9
undefined
我在这里看到一个类似的问题:https://github.com/nodejs/node/issues/10292 ...任何见解都会有所帮助。
从你的实验可以看出,d8不支持格式说明符。它不想支持任何不合法的东西 JavaScript.
说起来:JavaScript 有一段时间了“template literals”。因此,无需对 d8 或 console.log
提出任何要求,只要有字符串,您就可以执行以下操作:
let i = 42;
console.log(`Number is ${i}`);
let just_a_string = `1 + 2 = ${1+2}`;
console.log(just_a_string);
console.assert(just_a_string === "1 + 2 == 3");
如果您希望获得更高级的格式设置,例如 C 风格 %5d
,据我所知,您必须自己构建它。如果您对浮点数感兴趣,.toFixed
and .toPrecision
可能会对您有所帮助。