Heim  >  Artikel  >  Web-Frontend  >  Lassen Sie uns über die Unterschiede zwischen var, let und const sprechen (Codebeispiel)

Lassen Sie uns über die Unterschiede zwischen var, let und const sprechen (Codebeispiel)

藏色散人
藏色散人nach vorne
2023-01-06 16:25:212146Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über JavaScript. Er stellt Ihnen hauptsächlich die Unterschiede zwischen var, let und const vor und stellt auch die Beziehung zwischen ECMAScript und JavaScript vor. Ich hoffe, es hilft allen.

Lassen Sie uns über die Unterschiede zwischen var, let und const sprechen (Codebeispiel)

Was ist JavaScript?

Welche Beziehung besteht zunächst zwischen ECMAScript und JavaScript? 首先,ECMAScript 和 JavaScript 什么关系?

  • ECMAScript是一个国际通过的标准化脚本语言。
  • JavaScript由ECMAScript和DOM、BOM三者组成。 可以简单理解为:ECMAScript是JavaScript的语言规范,JavaScript是ECMAScript的实现和扩展。

var、let、const的区别?

1. var声明变量存在变量提升,let和const不存在变量提升

console.log(a); // undefined  ===>  a已声明还没赋值,默认得到undefined值
console.log(b); // 报错:b is not defined  ===> 找不到b这个变量
console.log(c); // 报错:c is not defined  ===> 找不到c这个变量
var a = 100;	
let b = 10;
const c = 10;
console.log(a);//a=100

2. let和const只能在块作用域里访问

if(1){
    var a = 100;
    let b = 10;
    const c = 1;
}

console.log(a); // 100
console.log(b)  // 报错:b is not defined  ===> 找不到b这个变量
console.log(c)  // 报错:c is not defined  ===> 找不到c这个变量

3. 同一作用域下let和const不能声明同名变量,而var可以

var a = 100;
console.log(a); //控制台输出 100

var a = 10;
console.log(a); //控制台输出 10

let a = 100;
let a = 10;

//  控制台报错:Identifier 'a' has already been declared  ===> 标识符a已经被声明了。

4. const定义常量,而且不能修改,但是在定义的对象时对象属性值可以改变

 const a=2
 a=3
 console.log(a)  //控制台报错
const person = {
    name : 'make',
    sex : '男'
}

person.name = 'test'

console.log(person.name)    //运行发现控制台没有报错,且 person.name 被成功修改

????这是怎么回事呢?

    ECMAScript ist eine international anerkannte standardisierte Skriptsprache.

    JavaScript besteht aus ECMAScript, DOM und BOM. Es kann einfach so verstanden werden: ECMAScript ist die Sprachspezifikation von JavaScript, und JavaScript ist die Implementierung und Erweiterung von ECMAScript.

    Was ist der Unterschied zwischen var, let und const? 1. Es gibt eine Variablen-Promotion für var-deklarierte Variablen, aber keine Variablen-Promotion für let und const

const person = {
  name : 'make',
  sex : '男'}person = {
  name : 'test',
  sex : '男'}console.log(person.name)  //控制台报错

2. Auf let und const kann nur im Blockbereich zugegriffen werden. 4. Const definiert Konstanten und kann nicht geändert werden, aber der Objektattributwert kann geändert werden, wenn das Objekt definiert wird

rrreeerrreee
? ? ? ? Was ist los?
  • Da es sich bei dem Objekt um einen Referenztyp handelt, speichert die Person nur den Zeiger des Objekts, und das Ändern der Eigenschaften des Objekts ändert nicht den Zeiger des Objekts, sodass diese Situation erfolgreich geändert werden kann. Mit anderen Worten: Durch const definierte Referenztypen sind zulässig, solange sich der Zeiger nicht ändert. Next Wir versuchen, den Zeiger zu ändern, Let -Person verweist auf ein neues Objekt

    und schließlich wird ein Fehler gemeldet. Förderung
  • , es gibt kein Konzept von Blöcken,
  • kann blockübergreifend zugegriffen werden

    . let-definierte

    Variablen
  • ,
  • kann nur im Blockbereich zugegriffen werden

    und Variablen mit demselben Namen können nicht deklariert werden. const wird verwendet, um Konstanten zu definieren. Bei Verwendung muss initialisiert werden (d. h. es muss ein Wert zugewiesen werden, auf den nur im Block zugegriffen werden kann). Gültigkeitsbereich und

    können nicht geändert werden
  • , aber in den definierten Objekteigenschaftenwerten können sich ändern, wenn ein Objekt verwendet wird.
  • Auf keine davon kann funktionsübergreifend zugegriffen werden

Empfohlenes Lernen: „

JavaScript-Video-Tutorial🎜“🎜

Das obige ist der detaillierte Inhalt vonLassen Sie uns über die Unterschiede zwischen var, let und const sprechen (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen