English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Comprensione approfondita dell'elevazione delle variabili in JavaScript

La definizione di funzione di JavaScript ha una caratteristica, ossia scansiona tutte le istruzioni del corpo della funzione, 'promuovendo' tutte le dichiarazioni di variabile alla cima della funzione:

'use strict';
function foo() {
  var x = 'Hello, ' + y;
  alert(x);
  var y = 'Bob';
{}
foo();

Anche se è in modalità strict, l'istruzione var x = 'Hello, ' + y; non segnala un errore, perché la variabile y è dichiarata in seguito. Tuttavia, alert mostra Hello, undefined, il che significa che il valore della variabile y è undefined. Questo è perché il motore JavaScript promuove automaticamente la dichiarazione della variabile y, ma non la sua assegnazione.

Per la funzione foo() sopra, il codice che vede il motore JavaScript è:

function foo() {
  var y; // Promuovere la dichiarazione della variabile y
  var x = 'Hello, ' + y;
  alert(x);
  y = 'Bob';
{}

A causa di questa 'caratteristica' curiosa di JavaScript, quando definiamo variabili all'interno di una funzione, dobbiamo rigorosamente seguire la regola di 'declarare tutte le variabili all'inizio della funzione'. La pratica più comune è dichiarare tutte le variabili utilizzate all'interno della funzione con una var:

function foo() {
  var
    x = 1, // x inizializzato a 1
    y = x + 1, // y inizializzato a 2
    z, i; // z e i sono undefined
  // Altre istruzioni:
  for (i=0; i<100; i++) {
    ...
  {}
{}

Questa guida approfondita su variazione variabile JavaScript che condivido con voi è tutto il contenuto che ho per voi, spero possa essere un riferimento utile e spero che possiate sostenere e gridare lezioni.

Ti potrebbe interessare