Chrome では、次の
console.log(true, '\t');
印刷します
true " "
なぜ引用符がぶら下がっているのですか?
( のみが印刷されるのと同じように、console.log(true + '', '\t')
のみが印刷されることに注意してください。)true
console.log('a', '\t');
a
Chrome では、次の
console.log(true, '\t');
印刷します
true " "
なぜ引用符がぶら下がっているのですか?
( のみが印刷されるのと同じように、console.log(true + '', '\t')
のみが印刷されることに注意してください。)true
console.log('a', '\t');
a
基本的に、console.log には 2 つのオーバーロードがあります。
console.log(formatString, args)
とconsole.log(arg1, arg2, ...)
。
より具体的には、ソースコードごとに、最初のパラメーターが文字列の場合、それを他のパラメーターのフォーマット文字列として扱います。それ以外の場合は、各パラメーターが直接出力されます。
したがってconsole.log(true + '', '\t')
、最初のパラメーターが文字列であり、のプレースホルダーがないため、「true」が出力されます。 は文字列ではないため\t
、console.log(true, '\t')
両方のパラメーターが出力されtrue
ます。
私はそれで遊ぶことにしました
console.log(true, '\t');
true " "
それから私は反対を試しました
console.log(false, '\t');
false " "
理由はわかりませんが、falseは1つのスペースのみを返し、trueは2つのo_Oを返します...また\t
、最初にある場合は問題はありません
console.log('\t', true);
true
また、その後に何が起こるかは問題ではありませんが、最初のパラメーターが一般にブール値である場合、引用符を付けた後のすべてのエスケープされたタブに影響を与えるようです。
console.log(false, '\t', '\t');
false " " " "
したがって、最初のパラメータがブール値であることに間違いなく関係があります。文字列で試してみると、完全に正常に動作するからです。私はそれがグーグルクロームで奇妙なことだと思いますか?実際に見るには、ソースコードを見つける必要があります。