Variabile

Putem declara o variabilă cu ajutorul:

var - declară o variabilă (function scope)

let - declară o variabilă locală (block scope)

const - declară o constantă locală (block scope)

Numele variabilei trebuie să respecte următoarele reguli:

  • să înceapă cu o literă, (_), sau ($)
  • următoarele caractere pot fi și cifre (0 - 9)
// corect
var userName, PetsClass, user102, $money, _myVar;

// incorect
var 102user;

Diferențe

var let const
durata de viață function scope block scope block scope
redeclarare da nu nu
schimbarea valorii da da nu
inițializarea cu o valoare opțional opțional obligatoriu
specificat de ECMAScript 1 ECMAScript 2015 ECMAScript 2015

Cuvinte rezervate:

Unele cuvinte sunt rezervate în JS și nu pot fi folosite pentru ca și nume de variabile, lista completă o găsiți pe MDN.

Scope

Prin scope înțelegem blocul de cod unde avem acces la variabilele definite în același bloc.

var catName = 'Tom'; // accesibilă global
function changeName() {
    var catName = 'Kitty'; // accesibilă doar în changeName, nu modificăm catName global
    if (true) {
        var catName = 'Bagira'; // redeclarăm catName în interiorul funcției, schimbândui valoarea
        console.log(catName);
    }
    console.log(catName); // log: Bagira
}
changeName();
console.log(catName); // log: Tom
let catName = 'Tom'; // accesibilă global
function changeName() {
    let catName = 'Kitty'; // accesibilă doar în changeName, nu modificăm catName global
    if (true) {
        let catName = 'Bagira'; // accesibilă doar în acest if, nu modificăm celelalte catName
        console.log(catName); // log: Bagira
    }
    console.log(catName); // log: Kira
}
changeName();
console.log(catName); // log: Tom
// ! în acest caz, dacă înlocuim let cu const vom primi același comportament

Erori posibile

var catName = 'Tom';
var catName = 'Bagira'; // e ok

let catName = 'Tom';
let catName = 'Bagira'; // Eroare: redeclarea variabilei nu e permisă

const catName = 'Tom';
const catName = 'Bagira'; // Eroare: redeclarea variabilei nu e permisă
var catName = 'Tom';
catName = 'Bagira'; // e ok

let catName = 'Tom';
catName = 'Bagira'; // e ok

const catName = 'Tom';
catName = 'Bagira'; // Eroare: nu putem modifica o constantă
var catName; // e ok
catName = 'Bagira'; // e ok

let catName; // e ok
catName = 'Bagira'; // e ok

const catName; // Eroare: nu putem declara o constantă fără valoare

results matching ""

    No results matching ""