Jadual Kandungan
let
基本用法
ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
不允许重复声明
const
Rumah hujung hadapan web tutorial js JavaScript ES6中let与const比较

JavaScript ES6中let与const比较

Jul 22, 2017 pm 04:54 PM
const

let

基本用法

ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
{
  let a = 10;
  var b = 1;
}

a // ReferenceError: a is not defined.
b // 1

上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的变量报错,var声明的变量返回了正确的值。这表明,let声明的变量只在它所在的代码块有效。

for循环的计数器,就很合适使用let命令。

for (let i = 0; i < 10; i++) {
  // ...
}

console.log(i);
// ReferenceError: i is not defined
上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错。

下面的代码如果使用var,最后输出的是10。

var a = [];
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 10
上面代码中,变量i是var命令声明的,在全局范围内都有效,所以全局只有一个变量i。每一次循环,变量i的值都会发生改变,而循环内被赋给数组a的函数内部的console.log(i),里面的i指向的就是全局的i。也就是说,所有数组a的成员里面的i,指向的都是同一个i,导致运行时输出的是最后一轮的i的值,也就是10。

如果使用let,声明的变量仅在块级作用域内有效,最后输出的是6。

var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 6
上面代码中,变量i是let声明的,当前的i只在本轮循环有效,所以每一次循环的i其实都是一个新的变量,所以最后输出的是6。你可能会问,如果每一轮循环的变量i都是重新声明的,那它怎么知道上一轮循环的值,从而计算出本轮循环的值?这是因为 JavaScript 引擎内部会记住上一轮循环的值,初始化本轮的变量i时,就在上一轮循环的基础上进行计算。

另外,for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。

for (let i = 0; i < 3; i++) {
  let i = 'abc';
  console.log(i);
}
// abc
// abc
// abc
上面代码正确运行,输出了3次abc。这表明函数内部的变量i与循环变量i不在同一个作用域,有各自单独的作用域。
Salin selepas log masuk

不允许重复声明

let不允许在相同作用域内,重复声明同一个变量。

// 报错
function () {
  let a = 10;
  var a = 1;
}

// 报错
function () {
  let a = 10;
  let a = 1;
}
因此,不能在函数内部重新声明参数。

function func(arg) {
  let arg; // 报错
}

function func(arg) {
  {
    let arg; // 不报错
  }
}
Salin selepas log masuk

const

基本用法

const声明一个只读的常量。一旦声明,常量的值就不能改变。

const PI = 3.1415;
PI // 3.1415

PI = 3;
// TypeError: Assignment to constant variable.
上面代码表明改变常量的值会报错。

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

const foo;
// SyntaxError: Missing initializer in const declaration
上面代码表示,对于const来说,只声明不赋值,就会报错。

const的作用域与let命令相同:只在声明所在的块级作用域内有效。

if (true) {
  const MAX = 5;
}

MAX // Uncaught ReferenceError: MAX is not defined
const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。

if (true) {
  console.log(MAX); // ReferenceError
  const MAX = 5;
}
上面代码在常量MAX声明之前就调用,结果报错。

const声明的常量,也与let一样不可重复声明。

var message = "Hello!";
let age = 25;

// 以下两行都会报错
const message = "Goodbye!";
const age = 30;
Salin selepas log masuk

Atas ialah kandungan terperinci JavaScript ES6中let与const比较. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pemahaman mendalam tentang const dalam bahasa C Pemahaman mendalam tentang const dalam bahasa C Feb 18, 2024 pm 12:56 PM

Penerangan terperinci dan contoh kod const dalam C Dalam bahasa C, kata kunci const digunakan untuk menentukan pemalar, yang bermaksud bahawa nilai pembolehubah tidak boleh diubah suai semasa pelaksanaan program. Kata kunci const boleh digunakan untuk mengubah suai pembolehubah, parameter fungsi dan nilai pulangan fungsi. Artikel ini akan memberikan analisis terperinci tentang penggunaan kata kunci const dalam bahasa C dan memberikan contoh kod khusus. pembolehubah diubah suai const Apabila const digunakan untuk mengubah suai pembolehubah, ini bermakna pembolehubah itu ialah pembolehubah baca sahaja dan tidak boleh diubah suai setelah ia diberikan nilai. Contohnya: berterusan

Mari kita bincangkan tentang perbezaan antara var, let dan const (contoh kod) Mari kita bincangkan tentang perbezaan antara var, let dan const (contoh kod) Jan 06, 2023 pm 04:25 PM

Artikel ini membawakan anda pengetahuan yang berkaitan tentang JavaScript Ia terutamanya memperkenalkan kepada anda perbezaan antara var, let dan const, serta hubungan antara ECMAScript dan JavaScript. Rakan yang berminat boleh melihatnya.

Cara menggunakan const dalam bahasa c Cara menggunakan const dalam bahasa c Sep 20, 2023 pm 01:34 PM

const ialah kata kunci yang boleh digunakan untuk mengisytiharkan pemalar, pengubah const dalam parameter fungsi, nilai pulangan fungsi yang diubah suai const dan penunjuk yang diubah suai const. Pengenalan terperinci: 1. Isytiharkan pemalar Kata kunci const boleh digunakan untuk mengisytiharkan pemalar Nilai pemalar tidak boleh diubah suai semasa menjalankan atur cara, seperti integer, nombor titik terapung. aksara, dsb., atau jenis data tersuai; 2. Pengubah suai const dalam parameter fungsi Kata kunci const boleh digunakan dalam parameter fungsi, menunjukkan bahawa parameter tidak boleh diubah suai di dalam fungsi, dsb.

18 Cara untuk Memperbaiki Isu Perkhidmatan Audio Tidak Menjawab pada Windows 11 18 Cara untuk Memperbaiki Isu Perkhidmatan Audio Tidak Menjawab pada Windows 11 Jun 05, 2023 pm 10:23 PM

Output dan input audio memerlukan pemacu dan perkhidmatan tertentu untuk berfungsi seperti yang diharapkan pada Windows 11. Ini kadangkala berakhir dengan ralat di latar belakang, menyebabkan masalah audio seperti tiada output audio, peranti audio hilang, audio herot, dsb. Cara Membetulkan Perkhidmatan Audio Tidak Menjawab pada Windows 11 Kami mengesyorkan anda untuk memulakan dengan pembetulan yang dinyatakan di bawah dan menyelesaikan senarai sehingga anda berjaya menyelesaikan isu anda. Perkhidmatan audio mungkin menjadi tidak responsif atas beberapa sebab pada Windows 11. Senarai ini akan membantu anda mengesahkan dan menyelesaikan kebanyakan isu yang menghalang perkhidmatan audio daripada bertindak balas pada Windows 11. Sila ikut bahagian yang berkaitan di bawah untuk membantu anda melalui proses tersebut. Kaedah 1: Mulakan semula perkhidmatan audio yang mungkin anda hadapi

Ralat sintaks C++: objek const mesti dimulakan apabila ditakrifkan Bagaimana untuk menanganinya? Ralat sintaks C++: objek const mesti dimulakan apabila ditakrifkan Bagaimana untuk menanganinya? Aug 22, 2023 am 09:13 AM

Untuk pengaturcara C++, ralat sintaks adalah salah satu masalah yang paling biasa. Salah satu kesilapan biasa ialah objek const mesti dimulakan pada masa definisi. Jika anda menghadapi situasi ini, bagaimanakah anda harus menghadapinya? Pertama, kita perlu memahami apa itu objek const. Kata kunci const ialah kelayakan jenis khas dalam C++ yang menyatakan bahawa nilai pembolehubah tidak boleh diubah semasa pelaksanaan program. Pembolehubah sedemikian dipanggil "pemalar". Jika anda mentakrifkan objek const tanpa memulakannya, anda akan menghadapi ralat di atas. ini adalah

Apakah penggunaan kata kunci const yang betul dalam fungsi C++? Apakah penggunaan kata kunci const yang betul dalam fungsi C++? Apr 11, 2024 pm 02:36 PM

Penggunaan kata kunci const yang betul dalam C++: Menggunakan const untuk mengubah suai fungsi bermakna fungsi itu tidak akan mengubah suai parameter atau ahli kelas yang diluluskan. Menggunakan const untuk mengisytiharkan penunjuk fungsi bermakna penunjuk menunjuk kepada fungsi malar.

Ralat C++: Tidak boleh menukar objek const kepada objek bukan const, bagaimana untuk menyelesaikannya? Ralat C++: Tidak boleh menukar objek const kepada objek bukan const, bagaimana untuk menyelesaikannya? Aug 22, 2023 am 08:33 AM

Sebagai bahasa yang ditaip dengan kuat, C++ perlu mempertimbangkan banyak butiran semasa melakukan penukaran jenis Masalah biasa ialah objek const tidak boleh ditukar kepada objek bukan const. Masalah ini lebih biasa apabila petunjuk dan rujukan terlibat. Seterusnya, kami akan memperincikan punca dan penyelesaian kepada masalah ini. Punca masalah ialah kata kunci const dalam C++ digunakan untuk menentukan pemalar Setelah pemalar ditakrifkan, ia tidak boleh diubah suai. Apabila kita menukar objek const kepada objek bukan const, kita sebenarnya cuba mengubah suai a

Penggunaan penunjuk const dan objek tidak berubah dalam C++ Penggunaan penunjuk const dan objek tidak berubah dalam C++ Jun 06, 2024 am 10:30 AM

Dalam C++, penunjuk const menunjuk kepada data yang tidak boleh diubah, manakala objek tidak boleh diubah mempunyai ciri-ciri yang mereka tidak boleh diubah suai Kelebihan utama ialah: petunjuk const: menghalang data yang ditunjukkan daripada ditulis secara tidak sengaja dan memastikan integriti data. Objek tidak boleh ubah: Dengan membuat const pembolehubah ahli kelas, objek yang tidak boleh diubah suai dicipta untuk memastikan keselamatan data.

See all articles