Sök…


Introduktion

En webbläsares felsökningskonsol eller webbkonsol används vanligtvis av utvecklare för att identifiera fel, förstå flöde av körning, logga data och för många andra ändamål under körning. Denna information nås via console .

Syntax

  • void console.log (obj1 [, obj2, ..., objN]);
  • void console.log (msg [, sub1, ..., subN]);

parametrar

Parameter Beskrivning
obj1 ... objN En lista med JavaScript-objekt vars strängrepresentationer matas ut i konsolen
msg En JavaScript-sträng som innehåller noll eller fler substitutionssträngar.
sub1 ... subN JavaScript-objekt som ersätter strängsträngar inom med.

Anmärkningar

Informationen som visas av en felsökning / webbkonsol görs tillgänglig genom flera metoder för console Javascript-objekt som kan konsulteras via console.dir(console) . Förutom console.memory egenskapen är de metoder som visas generellt följande (hämtade från Chromiums utgång):

Öppna konsolen

I de flesta aktuella webbläsare har JavaScript-konsolen integrerats som en flik i utvecklarverktygen. Genvägstangenterna nedan öppnar utvecklarverktyg, det kan vara nödvändigt att byta till högerflik efter det.


Krom

Öppna panelen “Console” i Chrome: s DevTools :

  • Windows / Linux: något av följande alternativ.

    • Ctrl + Skift + J
    • Ctrl + Shift + I , klicka sedan på fliken "Web Console" eller tryck på ESC för att slå på och av konsolen
    • F12 , klicka sedan på fliken "Konsol" eller tryck på ESC för att slå på och stänga av konsolen
  • Mac OS: Cmd + Opt + J


Firefox

Öppna panelen “Console” i Firefox: s utvecklingsverktyg :

  • Windows / Linux: något av följande alternativ.

    • Ctrl + Skift + K
    • Ctrl + Shift + I , klicka sedan på fliken "Web Console" eller tryck på ESC för att slå på och av konsolen
    • F12 , klicka sedan på fliken "Web Console" eller tryck på ESC för att slå på och stänga av konsolen
  • Mac OS: Cmd + Opt + K


Edge och Internet Explorer

Öppna “Console” -panelen i F12 Developer Tools :

  • F12 , klicka sedan på fliken "Konsol"

Safari

När du öppnar panelen "Konsol" i Safaris webbinspektör måste du först aktivera utvecklingsmenyn i Safaris inställningar

safaripreferenser

Sedan kan du antingen välja "Utveckla-> Visa felkonsol" från menyerna eller trycka på + Alternativ + C


Opera

Öppna "konsolen" i opera:

  • Ctrl + Shift + I och klicka sedan på "Console" -fliken

Kompatibilitet

När du använder eller emulerar Internet Explorer 8 eller tidigare versioner (t.ex. genom kompatibilitetsvy / företagsläge) kommer konsolen bara att definieras när utvecklarverktygen är aktiva, så uttalanden av console.log() kan orsaka ett undantag och förhindra att kod körs. För att mildra detta kan du kontrollera om konsolen är tillgänglig innan du loggar in:

if (typeof window.console !== 'undefined')
{
   console.log("Hello World");
}

Eller i början av ditt skript kan du identifiera om konsolen är tillgänglig och om inte, definiera en nollfunktion för att fånga alla dina referenser och förhindra undantag.

if (!window.console)
{ 
    console = {log: function() {}}; 
}

Observera att detta andra exempel stoppar alla konsolloggar även om utvecklarfönstret har öppnats.

Att använda det andra exemplet utesluter användning av andra funktioner som console.dir(obj) såvida det inte läggs till specifikt.

Tabuleringsvärden - konsol.tabell ()

I de flesta miljöer kan console.table() användas för att visa objekt och matriser i tabellformat.

Till exempel:

console.table(['Hello', 'world']);

skärmar som:

(index) värde
0 "Hej"
1 "värld"
console.table({foo: 'bar', bar: 'baz'});

skärmar som:

(index) värde
"Foo" "bar"
"bar" "Baz"

var personArr = [{"personId": 123, "name": "Jhon", "city": "Melbourne", "phoneNo": "1234567890"}, {"personId": 124, "name": "Amelia" , "city": "Sydney", "phoneNo": "1234567890"}, {"personId": 125, "name": "Emily", "city": "Perth", "phoneNo": "1234567890"}, {"personId": 126, "name": "Abraham", "city": "Perth", "phoneNo": "1234567890"}];

console.table (personArr, ['namn', 'personId']);

skärmar som:

ange bildbeskrivning här

Inklusive en stapelspår vid loggning - console.trace ()

function foo() {
  console.trace('My log statement');
}

foo();

Visar detta i konsolen:

My log statement       VM696:1
  foo                  @ VM696:1
  (anonymous function) @ (program):1

Obs: När det är tillgängligt är det också bra att veta att samma stapelspår är tillgängligt som en egenskap för felobjektet. Detta kan vara användbart för efterbehandling och insamling av automatiserad feedback.

var e = new Error('foo');
console.log(e.stack);

Skriva ut till en webbläsares felsökningskonsol

En webbläsares felsökningskonsol kan användas för att skriva ut enkla meddelanden. Denna felsökning eller webbkonsol kan öppnas direkt i webbläsaren ( F12- nyckel i de flesta webbläsare - se anmärkningar nedan för mer information) och log för console Javascript-objekt kan åberopas genom att skriva följande:

console.log('My message');

Genom att trycka på Enter visar detta My message i felsökningskonsolen.


console.log() kan anropas med valfritt antal argument och variabler som finns tillgängliga i det aktuella omfånget. Flera argument skrivs ut på en rad med ett litet avstånd mellan dem.

var obj = { test: 1 };
console.log(['string'], 1, obj, window);

log visar följande i felsökningskonsolen:

['string']  1  Object { test: 1 }  Window { /* truncated */ }

Förutom vanliga strängar kan console.log() hantera andra typer, som matriser, objekt, datum, funktioner osv.:

console.log([0, 3, 32, 'a string']);
console.log({ key1: 'value', key2: 'another value'});

Visar:

Array [0, 3, 32, 'a string']
Object { key1: 'value', key2: 'another value'}

Kapslade objekt kan kollapsas:

console.log({ key1: 'val', key2: ['one', 'two'], key3: { a: 1, b: 2 } });

Visar:

Object { key1: 'val', key2: Array[2], key3: Object }

Vissa typer som Date och function kan visas annorlunda:

console.log(new Date(0));
console.log(function test(a, b) { return c; });

Visar:

Wed Dec 31 1969 19:00:00 GMT-0500 (Eastern Standard Time)
function test(a, b) { return c; }

Andra tryckmetoder

Förutom de log metoden, moderna webbläsare stöder också liknande metoder:

  • console.info - den lilla informativa ikonen (ⓘ) visas på vänster sida av den eller de tryckta strängarna eller objektet.

  • console.warn - liten varningsikon (!) visas på vänster sida. I vissa webbläsare är loggens bakgrund gul.

  • console.error - ikon för små gånger (⊗) visas på vänster sida. I vissa webbläsare är loggens bakgrund röd.

  • console.timeStamp - matar ut aktuell tid och en specificerad sträng, men är icke-standard:

    console.timeStamp('msg');
    

    Visar:

    00:00:00.001 msg
    
  • console.trace - matar ut det aktuella stapelspåret eller visar samma utgång som log om den anropas i det globala omfånget.

    function sec() {
       first();
    }
    function first() {
       console.trace();
    }
    sec();
    

    Visar:

    first
    sec
    (anonymous function)
    

Konsolfunktioner

Bilden ovan visar alla funktioner, med undantag för timeStamp , i Chrome version 56.

Dessa metoder uppför sig på samma sätt som log och i olika felsökningskonsoler kan återges i olika färger eller format.

I vissa felsökare kan informationen om enskilda objekt utvidgas ytterligare genom att klicka på den tryckta texten eller på en liten triangel (►) som hänvisar till respektive objektegenskaper. Dessa kollapsande objektegenskaper kan vara öppna eller stängda i loggen. Se console.dir för ytterligare information om detta

Mätningstid - konsol.tid ()

console.time() kan användas för att mäta hur lång tid en uppgift i din kod tar att köra.

console.time([label]) ringer console.time([label]) startar en ny timer. När console.timeEnd([label]) anropas, räknas den förflutna tiden i millisekunder eftersom det ursprungliga .time() beräknas och loggas. På grund av detta beteende kan du ringa .timeEnd() flera gånger med samma etikett för att logga den förflutna tiden sedan det ursprungliga .time() gjordes.


Exempel 1:

console.time('response in');

alert('Click to continue');
console.timeEnd('response in');

alert('One more time');
console.timeEnd('response in');

kommer att mata ut:

response in: 774.967ms
response in: 1402.199ms

Exempel 2:

var elms = document.getElementsByTagName('*'); //select all elements on the page

console.time('Loop time');

for (var i = 0; i < 5000; i++) {
    for (var j = 0, length = elms.length; j < length; j++) {
        // nothing to do ...
    }
}

console.timeEnd('Loop time');

kommer att mata ut:

Loop time: 40.716ms

Räknar - konsol.antal ()

console.count([obj]) sätter en räknare på objektets värde som anges som argument. Varje gång denna metod åberopas ökas räknaren (med undantag för den tomma strängen '' ). En etikett tillsammans med ett nummer visas i felsökningskonsolen enligt följande format:

[label]: X

label representerar värdet på objektet som skickas som argument och X representerar räknarens värde.


Ett objekts värde beaktas alltid, även om variabler tillhandahålls som argument:

var o1 = 1, o2 = '2', o3 = "";
console.count(o1);
console.count(o2);
console.count(o3);

console.count(1);
console.count('2');
console.count('');

Visar:

1: 1
2: 1
: 1
1: 2
2: 2
: 1

Strängar med siffror konverteras till Number objekt:

console.count(42.3);
console.count(Number('42.3'));
console.count('42.3');

Visar:

42.3: 1
42.3: 2
42.3: 3

Funktioner pekar alltid på det globala Function :

console.count(console.constructor);
console.count(function(){});
console.count(Object);
var fn1 = function myfn(){};
console.count(fn1);
console.count(Number);

Visar:

[object Function]: 1
[object Function]: 2
[object Function]: 3
[object Function]: 4
[object Function]: 5

Vissa objekt får specifika räknare kopplade till den typ av objekt de refererar till:

console.count(undefined);
console.count(document.Batman);
var obj;
console.count(obj);
console.count(Number(undefined));
console.count(NaN);
console.count(NaN+3);
console.count(1/0);
console.count(String(1/0));
console.count(window);
console.count(document);
console.count(console);
console.count(console.__proto__);
console.count(console.constructor.prototype);
console.count(console.__proto__.constructor.prototype);
console.count(Object.getPrototypeOf(console));
console.count(null);

Visar:

undefined: 1
undefined: 2
undefined: 3
NaN: 1
NaN: 2
NaN: 3
Infinity: 1
Infinity: 2
[object Window]: 1
[object HTMLDocument]: 1
[object Object]: 1
[object Object]: 2
[object Object]: 3
[object Object]: 4
[object Object]: 5
null: 1

Tom sträng eller frånvaro av argument

Om inget argument tillhandahålls medan man räknar in räkningsmetoden i felsökningskonsolen antas en tom sträng som parameter, dvs:

> console.count();
  : 1
> console.count('');
  : 2
> console.count("");
  : 3

Felsökning med påståenden - console.assert ()

Skriver ett felmeddelande till konsolen om påståendet är false . Annars, om påståendet är true , gör detta ingenting.

console.assert('one' === 1);

produktion

Flera argument kan tillhandahållas efter påståendet - det kan vara strängar eller andra objekt - som endast kommer att skrivas ut om påståendet är false :

Påstående med flera objekt som parametrar

console.assert inte kasta en AssertionError (utom i Node.js ), vilket innebär att denna metod är oförenlig med de flesta tester ramar och att körning av kod kommer inte att bryta på en misslyckad påstående.

Formatera konsolutgång

Många av konsolens utskriftsmetoder kan också hantera C-liknande strängformatering med hjälp av % tokens:

console.log('%s has %d points', 'Sam', 100);

Visar Sam has 100 points .

Den fullständiga listan med formatspecifikationer i Javascript är:

Specifier Produktion
%s Formaterar värdet som en sträng
%i eller %d Formaterar värdet som ett heltal
%f Formaterar värdet som ett flytande punktvärde
%o Formaterar värdet som ett expanderbart DOM-element
%O Formaterar värdet som ett expanderbart JavaScript-objekt
%c Tillämpar CSS-stilregler på utgångssträngen enligt den andra parametern

Avancerad styling

När CSS-formatspecifikationen ( %c ) placeras på vänster sida av strängen, accepterar utskriftsmetoden en andra parameter med CSS-regler som tillåter finkornig kontroll över formateringen av den strängen:

console.log('%cHello world!', 'color: blue; font-size: xx-large');

Visar:

produktion

Det är möjligt att använda flera %c format:

  • varje substring till höger om en %c har en motsvarande parameter i utskriftsmetoden;
  • denna parameter kan vara en emtpy-sträng, om det inte finns något behov att tillämpa CSS-regler på samma substring;
  • om två %c formatspecificerare hittas, den 1: a (innesluten i %c kommer) och 2: a träng har sina regler definieras i 2: a och 3: e parameter hos utskriftsmetoden respektive.
  • om tre %c formatspecificerare hittas, sedan 1: a, 2: a och 3: e delsträngar kommer att ha sina regler definieras i 2: a, 3: e och 4: e parameter respektive, och så vidare ...
console.log("%cHello %cWorld%c!!", // string to be printed
            "color: blue;", // applies color formatting to the 1st substring
            "font-size: xx-large;", // applies font formatting to the 2nd substring
            "/* no CSS rule*/" // does not apply any rule to the remaing substring
);

Visar:

flera CSS-specifikationer utgång


Använda grupper för att indraga utdata

Utdata kan identifieras och bifogas i en hopfällbar grupp i felsökningskonsolen med följande metoder:

  • console.groupCollapsed() : skapar en kollapsad grupp av poster som kan utökas genom avslöjningsknappen för att avslöja alla poster som utförs efter att denna metod har åberopats;
  • console.group() : skapar en utvidgad grupp med poster som kan kollapsas för att dölja posterna efter att denna metod har åberopats.

Identifieringen kan tas bort för posterior med hjälp av följande metod:

  • console.groupEnd () : lämnar den aktuella gruppen, så att nyare poster kan skrivas ut i modergruppen efter att denna metod har åberopats.

Grupper kan kaskadas för att tillåta flera identifierade utdata eller hopfällbara lager i varandra:

Kollapsad grupp = Collapsed group expanded => Utökad grupp

Rensa konsolen - console.clear ()

Du kan rensa konsolfönstret med metoden console.clear() . Detta tar bort alla tidigare tryckta meddelanden i konsolen och kan skriva ut ett meddelande som "Konsol rensades" i vissa miljöer.

Visa objekt och XML interaktivt - console.dir (), console.dirxml ()

console.dir(object) visar en interaktiv lista över egenskaperna för det angivna JavaScript-objektet. Utgången presenteras som en hierarkisk lista med avslöjande trianglar som låter dig se innehållet i barnobjekt.

var myObject = {
    "foo":{
        "bar":"data"
    }
};

console.dir(myObject);

visar:

ange bildbeskrivning här


console.dirxml(object) skriver ut en XML-representation av efterkommande element till objektet om möjligt, eller JavaScript-representationen om inte. Att ringa console.dirxml() på HTML- och XML-element motsvarar samtalet console.log() .

Exempel 1:

console.dirxml(document)

visar:

ange bildbeskrivning här

Exempel 2:

console.log(document)

visar:

ange bildbeskrivning här

Exempel 3:

var myObject = {
    "foo":{
        "bar":"data"
    }
};

console.dirxml(myObject);

visar:

ange bildbeskrivning här



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow