Heim > Web-Frontend > js-Tutorial > Hauptteil

Welche 4 Möglichkeiten gibt es, Variablen in Javascript zu deklarieren?

青灯夜游
Freigeben: 2023-01-04 09:34:02
Original
12047 Leute haben es durchsucht

4 Möglichkeiten, Variablen in JavaScript zu deklarieren: 1. Verwenden Sie „var“, um Variablen zu deklarieren, z. B. „var a;“ 2. Verwenden Sie „function“, um Variablen zu deklarieren, z. B. „function Fun (num) {}“; 3. Verwenden Sie „let“, um Variablen zu deklarieren. 4. Verwenden Sie „const“, um Variablen zu deklarieren.

Welche 4 Möglichkeiten gibt es, Variablen in Javascript zu deklarieren?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ECMAScript Version 6, Dell G3-Computer.

So deklarieren Sie Variablen

Es gibt mehrere Möglichkeiten, Variablen in JavaScript zu deklarieren:

  • Vor ES6 waren es var und function
  • Die neuen let und const in ES6

Funktion ist eine Möglichkeit, Variablen zu deklarieren?

Lassen Sie es uns überprüfen

Überprüfungsmethode eins:

    function repeatFun (num) {
      return num;
    }

    repeatFun(10); // 10

    var repeatFun = 1;

    repeatFun(2); // Uncaught TypeError: repeatFun is not a function
Nach dem Login kopieren

Diese Methode besteht darin, Variablen wiederholt zu deklarieren, aber letztere überschreibt die ersteren.

Sehen wir uns an, was hier passiert:

  • Zuerst deklarieren Eine Funktion, ihr Name ist „repeatFun“. Rufen Sie sie einmal auf und erhalten Sie das Ergebnis als 10. Inhalt: RepeatFun ist keine Funktion
  • Aus den Ausführungsergebnissen können wir schließen, dass es eine RepeatFun-Variable im Speicher des Browsers gibt. Es war zuvor eine Funktion und wurde später durch ein var-Schlüsselwort neu deklariert und zunächst als erkannt 1.
  • Überprüfungsmethode zwei:
  •     {
          let repeatFun = 1;
          function repeatFun (num) {
            return num
          }
        }
        // Uncaught SyntaxError: Identifier 'repeatFun' has already been declared
    Nach dem Login kopieren
  • Die zweite Methode besteht darin, eine Syntax von
  • ES6 zu verwenden: Verwenden der Funktion, die nicht wiederholt deklariert werden kann, um zu beweisen, dass die Funktion auch eine Möglichkeit ist, Variablen zu deklarieren

var, let und const sind unterschiedlich. Punkt:

Variablendeklarationsförderung


Var hat die Funktion der Variablendeklarationsförderung, die zuerst verwendet und dann deklariert werden kann, und das Gegenteil ist der Fall.

let und const haben nicht die Funktion einer Variablen Deklarationsförderung und müssen zuerst deklariert werden, bevor sie verwendet werden können Der Gültigkeitsbereich von Scope
  • Var ist durch Funktionen begrenzt.

      Let und Const sind Blockbereiche Kann nach der Deklaration nicht geändert werden (Referenztypen und Basistypen. Die Leistung ist an einigen Stellen unterschiedlich)
    • let und const haben nicht die Funktion der Variablendeklarationsförderung, Sie müssen zuerst die Deklaration verwenden.
    • Beispiel 1: Überprüfen Sie die var-Variablenförderung: a + 1 (was ist der Wert von a?)
    Dann folgt Es deklariert eine Variable a, die zunächst als 1 erkannt wird
  • Dies ist, was der Code an der Oberfläche tut, aber was er tatsächlich tut, ist Folgendes:
  • Alle Wenn eine Variable deklariert wird, steht ihre Deklaration oben im Code und alle müssen einmal initialisiert werden. Der Wert lautet: undefiniert, aber die Position der Zuweisung ändert sich nicht.
    • Führen Sie dann andere Operationen aus
    • Der gleiche Effekt kann erzielt werden, indem man Folgendes schreibt:
    var b = a + 1; // b: NaN 
    var a = 1; // a: 1
    Nach dem Login kopieren
  • let und const verhalten sich anders als var
  • Beispiel 2: Überprüfen Sie, ob in let eine Variablenheraufstufung vorliegt:

    var b;
    var a;
    
    b = a +1; // b: NaN 
    a = 1; // a: 1
    Nach dem Login kopieren
      Beim Ausführen wird direkt ein Bereichsfehler ausgegeben Wenn es so ist, wird kein Fehler auftreten:
    • let b = a + 1; // Uncaught ReferenceError: a is not defined
      let a = 1;
      Nach dem Login kopieren
    • const und Die Leistung von let in Bezug auf die Variablenförderung ist konsistent
    • Doppelte Deklaration
  • Var kann wiederholt deklariert werden, letzteres deckt das erstere ab
  • let und const kann nicht wiederholt deklariert werden. Beispiel 1: Überprüfen Sie die wiederholte Deklaration von var:
      let a = 1; // a: 1
      let b = a + 1; // b: 2
      Nach dem Login kopieren
      Wert ist a + 1
    Beispiel 2: Überprüfen Sie die wiederholte Deklaration von let:
  • var a = 1;
    var a = 2;
    var b = a + 1; // 3
    Nach dem Login kopieren
    let a = 1;
    let a = 2; // Uncaught SyntaxError: Identifier 'a' has already been declared
    Nach dem Login kopieren

Offensichtlich können Variablen, die mit let in derselben Ausführungsumgebung deklariert wurden, nicht wiederholt deklariert werden, da sonst ein Fehler ausgegeben wird.

Const und let verhalten sich Das Gleiche gilt für wiederholte Deklarationen

  • Geltungsbereich

vars Geltungsbereich ist durch Funktionen begrenzt


let und const sind Blockbereiche

var kann globale Variablen und lokale Variablen definieren, let und const können nur lokale Variablen definieren Variablen
  • Kapseln Sie eine Fakultätsfunktion als Beispiel, die nicht verwendet wird. Die Schwanzrekursion wird durch die Kombination von for und if erreicht.
  • Beispiel 1, Fakultätsfunktion überprüft den Umfang des Bereichs:
  • var a = 1;
    let a = 2; //Uncaught SyntaxError: Identifier 'a' has already been declared
    Nach dem Login kopieren
const verhält sich genauso wie let in der Umfang des Bereichs

Beispiel 2, überprüft den Umfang von const:

  var num = 5;

  function factorial(num) {

      var result = 1,resultValue = 0;

      for (let i = num - 1; i >= 1; i--) {

        if (i === num - 1) {
          resultValue = num * i;
        }else{
          resultValue = num * i / num;
        }

        result *= resultValue;
      }

      // i 是用 let 进行定义它的作用域仅仅被限制在 for 循环的区域内
      // i++;// Uncaught ReferenceError: i is not defined

      return result;
  }

  // result 是用 var 进行定义,他的活动区域在 factorial 函数内
  // result++; // var的作用域.html:34 Uncaught ReferenceError: result is not defined

  factorial(num); // 120
Nach dem Login kopieren

Beispiel 3, überprüft, ob var globale Variablen definieren kann, let und const können nur lokale Variablen definieren

  {
    const NUM_1 = 10;
  }

  let b = NUM_1 + 1;  // Uncaught ReferenceError: NUM_1 is not defined
Nach dem Login kopieren

若这样改一下就可以得到我们想要的值:

  • 把用 var 定义的 name 的代码取消注释,把用 let 定义的 name 的代码注释。

这个同时也涉及到新问题 this 的指向。后面的文章再详细举例验证


const 的特殊之处

const 与 let , var 其实还是有些地方不一样的

例子1:验证 const 的特殊之处(一)<br/>

const NUM = 100; 
 NUM = 1000; // Uncaught TypeError: Assignment to constant variable
Nach dem Login kopieren
  • 经过 const 方式进行声明,之后赋值完毕,则不可以进行改变,否则会报错

但是也有例外

例子二:验证 const 的特殊之处(二)

  const obj = {
    name: &#39;xiaoMing&#39;,
    sayName () {
      return this.name
    }
  };
  obj.sayName(); // xiaoMing

  obj.name = &#39;xiaoHong&#39;;
  obj.sayName(); // xiaoHong
Nach dem Login kopieren
  • 使用 const 首先声明一个变量 obj , 并且这个变量指向我们在内存中创建的对象,你会发现我们改变里面的属性是没有任何问题

若这样改一下: <br/> 例子三:验证 const 的特殊之处(三)

  const obj = {
    name:&#39;xiaoMing&#39;,
    sayName(){
      return this.name
    }
  };

  obj = {}; // Uncaught TypeError: Assignment to constant variable
Nach dem Login kopieren
  • 若改变该变量的指向的对象,则就会报错。这种错误和 「 验证 const 的特殊之处(一)」的错误是一样的

更多编程相关知识,请访问:编程视频!!

Das obige ist der detaillierte Inhalt vonWelche 4 Möglichkeiten gibt es, Variablen in Javascript zu deklarieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage