JavaScript-referentie

| | | | | | | | | | | | | | | |

In JavaScript wordt een verwijzingsfout gegenereerd wanneer een gebruiker probeert te coderen naar een niet-bestaande variabele. In dit artikel gaan we in op de meest voorkomende typen benchmarkfouttriggers en hoe u deze kunt oplossen.

Volgens de JavaScript-webdocumenten zijn er zes verschillende soorten opkomstfouten, met variaties van elk , die in onze code kan worden ingeschakeld. Dit artikel richt zich op de vijf meest voorkomende benchmarkfoutvoorbeelden voor nieuwe ontwikkelaars.

Ongedefinieerde variabelen

Vergeten een variabele te definiëren voordat er wordt verwezen, kan de meest voorkomende trigger voor referentiefouten zijn voor nieuwe ontwikkelaars. Dit kan zelfs gebeuren als de variabele waarnaar wordt verwezen als commentaar is verwijderd.

Scope

Variabelen gedefinieerd in één het is onmogelijk om toegang te krijgen tot de functie daarbuiten. We kunnen denken aan de reikwijdte van de wetten die bepaalde delen van het grondgebied beheersen, zeggen de Verenigde Staten. Een wet in de boeken voor de stad San Francisco is misschien niet acceptabel om te volgen in de stad Miami. Inwoners van Miami die in Miami wonen, moeten de wetten van Miami volgen.

In de volgende functie proberen we toegang te krijgen tot de waarde van een buiten zijn lexicale bereik.

We kunnen dit probleem oplossen door onze variabelen in het globale bereik in te stellen

Strikte modus

Strikte modus heeft opzettelijk een andere set semantiek dan de normale standaardmodus, "slordige" modus in JavaScript-code. Een belangrijk ding om te onthouden bij het coderen in de strikte modus, is dat het stille fouten elimineert door ze in opstartfouten te veranderen. Een JavaScript-statement gebruikt de strikte modus als "gebruik strikt"; wordt aangeroepen vóór een declaratie

In als een JavaScript-ontwikkelaar we weten dat we var of leave - const gebruiken om een variabele te definiëren, maar hierboven zou een stille fout zijn geweest als de strikte modus niet was aangeroepen.

Herdeclaraties

Niet helemaal begrijpend hoe het opnieuw declareren van variabelen kan triggeren ook referentiefouten.

Om de bovenstaande code te corrigeren, moeten we deze wijzigen "leave" naar "var" Of laat "we" volledig weg in onze if-statement.