4 Handige Javascript-verklaringen die u moet weten
JavaScript-verklaringen geven ons de macht om implementeer verschillende soorten logica in onze code. JavaScript biedt ons verschillende functies, die allemaal hun eigen doel en syntaxis hebben. Een van de meest bekende voorbeelden zijn expressieverklaringen, iteratieverklaringen, voorwaardelijke verklaringen en meer
In de post van vandaag zullen we zien vier minder voorkomende JavaScript-instructies je hebt het misschien nog niet eerder geweten, maar je kunt je JavaScript-kennis verdiepen en je in staat stellen om betere code te schrijven.
1. Lege verklaring
In plaats van een JavaScript-verklaring kunt u een lege instructie toevoegen, die is geschreven als een enkele puntkomma ;
. Wanneer de JavaScript-interpreter een lege instructie interpreteert, er is geen code uitgevoerd, daarom kunnen ze nuttig zijn om vervang sub-statements die je niet wilt uitvoeren.
Stel bijvoorbeeld dat er een variabele is genaamd lakmoes
met de standaardwaarde neutrale
. Gebaseerd op de waarde van een andere variabele genaamd pH
, lakmoes
wijzigingen in een van beide zure
wanneer pH < 7 or basis-
wanneer pH> 7.
Als de waarde van pH
blijkt ongeldig te zijn, er is een fout opgetreden. Voor een staat zo zijn de volgende voorwaardelijke uitspraken van toepassing:
var lakmus = 'neutraal'; var pH; indien (pH> 0 && pH<7) litmus = 'acidic'; else if(pH>7 && pH<15) litmus = 'basic'; else throw "Invalid pH value";
De bovenstaande set instructies geeft echter een fout wanneer pH
De waarde is 7, wat niet het geval zou moeten zijn.
Wanneer pH
is 7, lakmoes
zou zijn standaardwaarde moeten behouden, dat wil zeggen neutrale
. Dus, voor een geval als dit, voeg een voorwaarde toe wanneer pH
is 7 met een trailing leeg statement.
var lakmus = 'neutraal'; var pH; indien (pH> 0 && pH<7) litmus = 'acidic'; else if(pH===7) ; /* empty statement */ else if(pH>7 && pH<15) litmus = 'basic'; else throw "Invalid pH value";
Nu wanneer pH
is 7, de interpreter voert geen instructies uit, en lakmoes
behoudt de standaardwaarde, neutrale
.
Lege instructies kunnen ook worden gebruikt om een array te vullen met behulp van de voor
lus.
var ary = []; voor (var i = 0; i < 5; ary[i++] = i) ; /* empty statement */ console.log(ary); // [1, 2, 3, 4, 5]
Typisch, een voor
lusinstructie wordt gevolgd door een subinstructie die is samengesteld uit een enkele of een blokinstructie (de ingesloten in accolades) om uit te voeren. Door een lege instructie te gebruiken in plaats van de subinstructie, heeft de interpreter na elke lus niets om uit te voeren, dus alleen de looping treedt op en de lusvoorwaarden worden uitgevoerd.
In het bovenstaande voorbeeld, ary [i ++] = i
wordt uitgevoerd voor elke lus-iteratie als onderdeel van de lusvoorwaarde en de array ary
wordt geïnstantieerd met waarden van ik
.
2. De debugger
Uitspraak
In hulpprogramma's voor foutopsporing kunnen we markeringen toevoegen riep breekpunten naar elke regel in de broncode naar markeer de regels vanaf waar de foutopsporingstool debugging zal starten.
In JavaScript, de debugger
uitspraak werkt op dezelfde manier als een breekpunt, behalve dat het is direct in de broncode toegevoegd, in plaats van in een tool. Elke werkende debugger zal stop de uitvoering van het script wanneer het de debugger
verklaring om u te helpen de code te debuggen.
Vergeet niet dat het debuggen wordt geactiveerd alleen als het script in een foutopsporingsmodus wordt uitgevoerd, d.w.z. een foutopsporingsprogramma loopt al over de uitvoering van het script. Als er geen actueel foutopsporingsprogramma is tijdens het interpreteren van de debugger
verklaring, zal de tolk zijn werk voortzetten alsof er niets gebeurd is.
Voer als snelle test de volgende code uit in Codepen, terwijl de foutopsporingsfunctie van de browser open blijft:
console.log (tesing); debugger; console.log ('debugging statement');
Je ziet een breekpunt naast de debugger
verklaring zoals hieronder weergegeven in de foutopsporingshulpprogramma van de browser.
3. Gelabelde verklaring
In JavaScript kunt u ook labels aan bepaalde instructies toevoegen. Door dit te doen, kunt u later spring naar de gelabelde verklaring gebruik het label in uw code, soort van zoals de ga naar
verklaring werkt in sommige andere talen.
Gelabelde verklaringen kunnen alleen samen met de. Worden gebruikt breken
en doorgaan met
verklaringen, zoals in JavaScript is er geen letterlijke ga naar
uitspraak.
Beide breken
en doorgaan met
kan alleen worden gebruikt in lusinstructies, zoals de voor
loop (met één uitzondering, breken
kan worden gebruikt in de schakelaar
verklaring ook). We kunnen dus loops labelen en gebruiken breken
en doorgaan met
om hun uitvoering te beheersen.
De syntaxis van gelabelde verklaringen is eenvoudig, u hoeft alleen de naam van het label toe te voegen met een volgende dubbele punt, zoals u kunt zien in het onderstaande voorbeeld, waar lus
is de naam van het label dat we toevoegen aan de voor
lus.
loop: for (var i = 0; i<5; i++) if(i===2) continue loop; console.log(i); // 0, 1, 3, 4
Wanneer de waarde van ik
is 2, de uitvoering springt terug naar de lus in plaats van verder te gaan en voorkomt zo de console-uitvoer van “2”.
Laten we nu een ander voorbeeld bekijken met de breken
uitspraak. Vervang gewoon de doorgaan met
trefwoord met breken
in het bovenstaande voorbeeld, en je zult merken dat in plaats van terug te springen naar de lus zoals het deed met doorgaan met
, de lus eindigt / breekt helemaal.
loop: for (var i = 0; i<5; i++) if(i===2) break loop; console.log(i); // 0, 1
De bovenstaande voorbeelden waren vrij eenvoudig, zodat u snel kunt begrijpen hoe gelabelde instructies werken, maar in real-life codering worden labels vaker gebruikt in samengestelde lussen, wanneer het nodig is om de verschillende lussen te onderscheiden, zoals in het volgende voorbeeld:
loop: for (var i = 0; i<4; i++) for(var j=0; j<2; j++) if(i===2 && j===1) break loop; console.log(i+"-"+j);
Hier de buitenste lus breaks op waarde 2 voor variabel ik
en op 1 voor j
, en de console retourneert de volgende uitvoer:
0-0 0-1 1-0 1-1 2-0
4. Het met
Uitspraak
Wanneer de JS-interpreter komt een niet-gekwalificeerde naam tegen die niet specificeert met welk object of functie de oproep geassocieerd is, it doorzoekt de scopeketen voor elk geschikt object of functie waarnaar de oproep verwijst.
Door de met
verklaring, we kunnen voeg een object toe aan de top van de scopeketen, en geef op met welk object de oproep is geassocieerd.
In het volgende voorbeeld ziet u dat de eigenschappen van de persoon
objecten worden aangeroepen met hun naam alleen in de met
uitspraak.
var person = firstName: "John", lastName: "Doe", age: "18", land: "Greenland"; met (persoon) console.log ("Hallo, mijn naam is" + voornaamNaam + "" + achternaamNaam + ". Ik ben" + leeftijd + "jaar oud en woon in" + land + "."); // "Hallo, mijn naam is John Doe, ik ben 18 jaar oud en woon op Groenland."
Vergelijk hoe de bovenstaande code eruit zou zien zonder de met
uitspraak:
var person = firstName: "John", lastName: "Doe", age: "18", land: "Greenland"; console.log ("Hallo, mijn naam is" + person.firstName + "" + person.lastName + ". Ik ben" + person.age + "jaar oud en woon in" + person.country + "." ); // "Hallo, mijn naam is John Doe, ik ben 18 jaar oud en woon op Groenland."
Je kan de ... zien met
verklaring kan een goede sneltoets zijn als u met veel eigenschappen van hetzelfde object werkt.
Merk echter op dat het gebruik van de met
uitspraak in strikte modus is niet toegestaan, omdat het enige scoopverwarring kan veroorzaken.
Ook is het alleen aangeraden om de met
verklaring als de interne instructies het object gebruiken dat is gekoppeld aan de met
verklaring, anders zal de tolk tijd verspillen aan het kijken naar het object dat wordt genoemd door met
ten eerste, voor alle niet-gekwalificeerde eigenschapsnamen die later in de met
blok.