2012-06-19 3 views
9

Ho usato la console di Chrome per scrivere una semplice dichiarazione:Che cosa significa se console.log (4) non viene definita in Chrome Console?

console.log(4) 

e ha ricevuto il uscita:

4 

undefined

Che cosa significa l'affermazione non definita? L'istruzione non definita implica l'esecuzione corretta? Se eseguo la dichiarazione tramite un file HTML separato e poi guardare la console, l'uscita è solo 4.

+1

possibile duplicato di [Chrome/Firefox console.log anteporre sempre una riga che dice indefinito] (http://stackoverflow.com/questions/14633968/chrome-firefox-console-log-always-prepends-a-line-saying -undefined) – Bergi

+0

non è sicuro che questo può essere un duplicato se è stato chiesto in '12, e quello che è stato collegato è stato chiesto in '13 ... –

+0

Credo 'Quale thread ha risposte migliori e chiare 'è anche un criterio mentre contrassegna una domanda come duplicata. È un modo per consolidare meglio i thread correlati su SO. – RBT

risposta

10

il undefined è il valore di ritorno di console.log(...).

Si può vedere questo definendo due funzioni nella console, una restituisce qualcosa e l'altra non restituisce nulla, ad es. in questo modo:

function f1() { 
    return 1; 
} 
function f2() { 
    return; 
} 

E poi chiamarli separatamente (manualmente)

f1(); // shows '1' 

e

f2(); // shows 'undefined' 

Si noti inoltre il piccolo simbolo prima che questi stringa valore di ritorno.

+0

Oh, bello. Questa funzionalità è implementata come tale ai fini del debug? – AnthonyS

+0

interessante: apparentemente la console ti dà il valore di ritorno più recente, quindi se chiami f2(); f1(); l'output è solo 1 – AnthonyS

+0

Chiamandoli uno dopo l'altro sulla stessa riga, si sta effettivamente scartando il primo risultato. A proposito, se metti semplicemente 'var x = f1();', vedrai anche '1', perché il risultato di quell'espressione è ancora' 1'. Ecco perché affermazioni come 'x = y = z = f1()' funzionano. – Bart

0

ho provato e anche con una variabile preimpostato non ha funzionato nella mia Safari:

i = 2; 
console.log(i); 

Questo sembra spiegare il bug che WebKit (il motore sia di Chrome e Safari) ha: Link

Problemi correlati