JavaScript-funksjon ikke definert feil (MEN DEN ER DEFINERT)

Javascript Funksjon Ikke Definert Feil Men Den Er Definert



I JavaScript, ' funksjon ikke definert ” er en vanlig feil som oppstår når programmet prøver å bruke en funksjon som ikke er deklarert eller definert i gjeldende omfang. Denne feilmeldingen kan være forvirrende fordi noen ganger er funksjonen faktisk definert i koden, men den resulterer fortsatt i feilen.

Denne artikkelen vil beskrive JavaScript-funksjonen ikke definert feil mens den er definert.

JavaScript-funksjon ikke definert feil (MEN DEN ER DEFINERT)

Noen ganger er funksjonen definert i koden, men likevel kan du møte følgende feil:









Det er to hovedårsaker til at feilen ovenfor oppstår etter å ha definert funksjonen, som er oppført nedenfor:



Årsak 1: Funksjonen er feilstavet eller har feil store bokstaver

Noen ganger kalles funksjonen opp med feil stavemåter. Siden JavaScript er et språk som skiller mellom store og små bokstaver, kunne ikke JavaScript-tolken finne det og kaste et ' funksjon ikke definert ' feil.





Eksempel

Først vil vi definere en funksjon ' sum ' som returnerer summen av to tall ' en ' og ' b ':

funksjonssum ( a, b ) {

komme tilbake en + b ;

}

Kalle funksjonen ' sum ' som ' sum ' ved å sende tall ' 4 ' og ' 7 ':



konsoll. Logg ( sum ( 4 , 7 ) )

Det vil gi en feil ' summen er ikke definert ':

Hvordan fikse det?

For å fikse denne feilen, sørg for at funksjonsnavnet er stavet riktig og har riktig bruk av store bokstaver:

konsoll. Logg ( sum ( 4 , 7 ) ) ;

Nå funksjonen ' sum ' har blitt kalt og skriv ut summen av to tall ' 4 ' og ' 7 ':

Årsak 2: Funksjon er definert i et annet omfang

I JavaScript har hver funksjon sitt omfang, og en funksjon kan bare få tilgang til variabler og funksjoner som er definert innenfor sitt eget omfang. Hvis en funksjon er definert i et annet omfang, kan det hende at den ikke er tilgjengelig for gjeldende omfang, noe som resulterer i en ' funksjon ikke definert ' feil.

Eksempel

Definer en funksjon ' sum() ' med to parametere ' en ' og ' b ' inne i funksjonen ' skrive ut() ':

funksjonsutskrift ( ) {

funksjon sum ( a, b ) {

konsoll. Logg ( en + b ) ;

}

}

Kalle funksjonen ' sum() ':

sum ( 5 , 10 ) ;

Det gir en feil fordi sum() er definert inne i print()-funksjonen, men tilgjengelig utenfor scope:

Hvordan fikse det?

Sørg for at funksjonen er definert i riktig omfang og kan nås fra der den kalles. For eksempel, hvis funksjonen er definert inne i en annen funksjon, kan det hende at den ikke er tilgjengelig utenfra.

Kall sum() inne i print()-funksjonen etter å ha definert den:

funksjonsutskrift ( ) {

funksjon sum ( a, b ) {

konsoll. Logg ( en + b ) ;

}

sum ( 1 , 4 ) ;

}

Kalle print()-metoden:

skrive ut ( ) ;

Produksjon

Eller du kan også definere funksjon separat og kalle den i en annen funksjons omfang som følger:

funksjon sum ( a, b ) {

konsoll. Logg ( en + b ) ;

}

Her vil vi kalle sum() inne i print()-funksjonen:

funksjonsutskrift ( ) {

sum ( 5 , 10 ) ;

}

Kall print()-metoden for å utføre funksjonen ' sum() ':

skrive ut ( ) ;

Summen av to tall ' 5 ' og ' 10 ' har blitt vist:

Vi har diskutert årsakene og løsningene for JavaScript ' funksjon ikke definert feil ” (men det er definert).

Konklusjon

Det er to hovedgrunner til at ' funksjon ikke definert ' feil oppstår etter å ha definert funksjonen, for eksempel ' funksjonen er feilstavet eller har feil bruk av store bokstaver ' eller ' funksjonen er definert i et annet omfang '. Denne artikkelen definerte årsakene og løsningene for JavaScript-feilen 'funksjon ikke definert' (men den er definert).