2012-08-27 14 views
5

W Chrome następująceDlaczego plik console.log (true, ' t') jest prawdziwy "t"?

console.log(true, '\t'); 

wypisze

true " " 

Dlaczego istnieją cytuje kręci?

(Zauważ, że console.log(true + '', '\t') będzie drukować tylko true, w taki sam sposób, console.log('a', '\t'); będzie drukować tylko a.)

+0

Aby wyświetlić białe znaki. – asawyer

+0

Nie jestem pewien na 100%, ale domyślam się, że \ t jest wyrażeniem łańcuchowym reprezentującym kartę, a chrome pokazuje "", dzięki czemu można odróżnić, że faktycznie działa. –

+0

@asawyer: Nie dzieje się dla 'console.log ('a', '\ t')'! – Randomblue

Odpowiedz

11

Zasadniczo istnieją dwie przeciążenia do console.log:

console.log(formatString, args) i console.log(arg1, arg2, ...).

Dokładniej, dla the source code, jeśli pierwszy parametr jest ciągiem, traktuje go jako ciąg formatu dla pozostałych parametrów. W przeciwnym razie każdy parametr jest wyprowadzany bezpośrednio.

Zatem console.log(true + '', '\t') wyjścia „true”, ponieważ pierwszy parametr jest ciągiem znaków i nie ma zastępczy dla \t i console.log(true, '\t') wyjściowe będą oba parametry bo true nie jest ciągiem.

+0

Bardzo ładna odpowiedź. Dzięki za wskazanie kodu. – Randomblue

+0

Dead link ...... – Rohit

2

postanowiłem poeksperymentować z nim

console.log(true, '\t'); 
true " " 

a następnie próbowałem odwrotny

console.log(false, '\t'); 
false " " 

nie wiem, dlaczego, ale fałszywy oddaje tylko jedno miejsce, podczas gdy prawdziwy oddaje dwa o_O .. . także jeśli \t jest na początku nie ma problemu

console.log('\t', true); 
    true 

prawda też m co się stanie po nim, ale wydaje się, że pierwszy parametr, jeśli jest ogólnie boolowskim, wpłynie na wszystkie tabulatory z sekwencjami z apostrofami.

console.log(false, '\t', '\t'); 
false " " " " 

Więc to na pewno ma coś wspólnego z pierwszym paramater będącego logiczna, ponieważ jeśli spróbujesz go ze strunami, zachowuje się zupełnie normalnie. Domyślam się, że jest to dziwaczne z Google Chrome? Muszę znaleźć kod źródłowy, żeby go zobaczyć.

+0

Problem z odstępem 1 do 2 spacji jest prawdopodobnie związany z kartą i rozwijany w celu wypełnienia pozostałej części kolumny karty. – apsillers

Powiązane problemy