JavaScript-variabelt omfång (med exempel)

I denna handledning lär du dig om variabelt omfång i JavaScript med hjälp av exempel.

Omfattning avser tillgängligheten av variabler och funktioner i vissa delar av koden.

I JavaScript har en variabel två typer av omfång:

  1. Globalt omfång
  2. Lokalt omfång

Globalt omfång

En variabel som deklareras högst upp i ett program eller utanför en funktion anses vara en global omfattningsvariabel.

Låt oss se ett exempel på en global omfattningsvariabel.

 // program to print a text let a = "hello"; function greet () ( console.log(a); ) greet(); // hello

I ovanstående program deklareras variabel a högst upp i ett program och är en global variabel. Det betyder att variabeln akan användas var som helst i programmet.

Värdet på en global variabel kan ändras inuti en funktion. Till exempel,

 // program to show the change in global variable let a = "hello"; function greet() ( a = 3; ) // before the function call console.log(a); //after the function call greet(); console.log(a); // 3

I ovanstående program är variabel a en global variabel. Värdet på a är hej. Därefter nås variabeln a inuti en funktion och värdet ändras till 3.

Därför ändras värdet på en efter att ha ändrats inuti funktionen.

Obs! Det är bra att undvika att använda globala variabler eftersom värdet på en global variabel kan förändras i olika områden i programmet. Det kan introducera okända resultat i programmet.

I JavaScript kan en variabel också användas utan att deklarera den. Om en variabel används utan att deklarera den blir variabeln automatiskt en global variabel.

Till exempel,

 function greet() ( a = "hello" ) greet(); console.log(a); // hello

I ovanstående program är variabel a en global variabel.

Om variabeln förklarades med hjälp let a = "hello"av programmet skulle ett fel uppstå.

Obs! I JavaScript finns "strict mode";det en variabel som inte kan användas utan att deklarera den. För att lära dig mer om strikt, besök JavaScript Strict.

Lokalt omfång

En variabel kan också ha ett lokalt omfång, dvs. den kan endast nås inom en funktion.

Exempel 1: Variabel för lokal räckvidd

 // program showing local scope of a variable let a = "hello"; function greet() ( let b = "World" console.log(a + b); ) greet(); console.log(a + b); // error

Produktion

 helloWorld Uncaught ReferenceError: b definieras inte

I ovanstående program är variabel a en global variabel och variabel b är en lokal variabel. Variabeln b kan endast nås inuti funktionshälsningen. Därför uppstår ett fel när vi försöker komma åt variabel b utanför funktionen.

Låt oss blockera Scoped

Den letnyckelordet är block scoped (variabeln kan nås endast i omedelbar block).

Exempel 2: Variabel med blockomfattning

 // program showing block-scoped concept // global variable let a = 'Hello'; function greet() ( // local variable let b = 'World'; console.log(a + ' ' + b); if (b == 'World') ( // block-scoped variable let c = 'hello'; console.log(a + ' ' + b + ' ' + c); ) // variable x cannot be accessed here console.log(a + ' ' + b + ' ' + c); ) greet();

Produktion

 Hello World Hello World hej Uncaught ReferenceError: x är inte definierad

I ovanstående program, variabel

  • a är en global variabel. Den kan nås var som helst i programmet.
  • b är en lokal variabel. Den kan endast nås inuti funktionen greet.
  • c är en blockomfattande variabel. Det kan endast nås inuti ifuttalande blocket.

I ovanstående program console.log()fungerar därför de två första utan problem.

Vi försöker dock komma åt den blockomfattade variabeln c utanför blocket i den tredje console.log(). Detta kommer att orsaka ett fel.

OBS : I JavaScript varär funktionsomfattning och letblockomfattning. Om du försöker använda var c = 'hello';inuti ifuttalandet i ovanstående program fungerar hela programmet, eftersom c behandlas som en lokal variabel.

För att lära dig mer om letkontra var, besök JavaScript let vs var.

Intressanta artiklar...