Apakah perbezaan antara var, biarkan dan const dalam javascript?

Apakah perbezaan antara var, biarkan dan const dalam javascript?

Perisytiharan berubah hanya memberitahu komputer bahawa pembolehubah wujud dan nilai yang harus dimulakan. Sama dengan bahasa pengaturcaraan lain JavaScript juga membolehkan pengisytiharan pembolehubah.

Terdapat tiga kata kunci dalam JavaScript yang boleh digunakan untuk mengisytiharkan pembolehubah: biarkan, var, dan const. Setiap kata kunci mempunyai peraturan dan implikasi yang berbeza untuk bagaimana pembolehubah yang mereka buat dapat digunakan.

  1. Biarkan: Kata kunci LET mengisytiharkan pemboleh ubah tempatan yang berskala blok, secara pilihannya memulakannya dengan nilai.

    Blok-scoped bermaksud bahawa pembolehubah hanya tersedia di dalam blok yang diisytiharkan dalam, yang biasanya dilambangkan oleh pendakap keriting .

  2. var: Kata kunci VAR mengisytiharkan pemboleh ubah fungsi atau global, secara pilihannya memulakannya dengan nilai.

    Fungsi-scoped bermaksud pembolehubah hanya tersedia dalam fungsi yang diisytiharkan dalam. Pembolehubah global disediakan di seluruh kod anda.

  3. const: Kata kunci const mengisytiharkan pemboleh ubah malar, tidak berubah, i.e. pemboleh ubah yang tidak dapat ditugaskan semula.

    Pemalar juga dipanggil "pembolehubah tidak berubah", tetapi itu sedikit salah faham kerana mereka sebenarnya pembolehubah - hanya yang tidak dapat ditugaskan.

Apa perbezaan antara var, biarkan dan const?

Kata kunci VAR adalah cara tertua untuk mengisytiharkan pembolehubah dalam JavaScript dan disokong oleh semua pelayar. Kata kunci Le dan Const adalah penambahan baru kepada bahasa dan tidak disokong oleh pelayar yang lebih tua.

Sekiranya anda perlu menyokong penyemak imbas yang lebih tua, anda boleh menggunakan var dan bukannya biarkan atau const. Sekiranya anda tidak perlu menyokong penyemak imbas yang lebih tua, anda boleh menggunakan LET atau Const. Sekiranya anda mahu pemboleh ubah anda tidak berubah, gunakan const.

Berikut adalah beberapa contoh:

var x = 1; biarkan y = 2; const z = 3; x = 4; // ok y = 5; // ok z = 6; // ralat
1234567var x = 1; biarkan y = 2; const z = 3; x = 4; // ok y = 5; // ok z = 6; // ralat

Seperti yang anda lihat, var dan biarkan pembolehubah boleh ditugaskan semula, tetapi pembolehubah const tidak boleh.

Perbezaan lain Antara var dan biarkan/const ialah pembolehubah var berfungsi-scoped, manakala pembolehubah biarkan dan const adalah blok-scoped.

Ini bermakna bahawa pembolehubah var hanya tersedia dalam fungsi yang diisytiharkan dalam. Sebagai contoh:

fungsi foo () var x = 1; foo (); konsol.log (x); // ReferensierError: x tidak ditakrifkan
123456fungsi foo () var x = 1; foo (); konsol.log (x); // ReferensierError: x tidak ditakrifkan

Sebaliknya, pembolehubah biarkan dan konst hanya tersedia di dalam blok yang diisytiharkan. Sebagai contoh:

fungsi foo () let y = 2; const z = 3; foo (); konsol.log (y); // ReferenceRor: Y tidak ditakrifkan konsol.log (z); // ReferenceRor: z tidak ditakrifkan
12345678fungsi foo () let y = 2; const z = 3; foo (); konsol.log (y); // ReferenceRor: Y tidak ditakrifkan konsol.log (z); // ReferenceRor: z tidak ditakrifkan

Oleh itu, untuk meringkaskan, perbezaan utama antara VAR, LET dan Const adalah:

  • var berfungsi-scoped manakala let dan const adalah scoped blok.
  • pembolehubah var boleh ditugaskan semula manakala pembolehubah biarkan dan const tidak boleh.
  • Pembolehubah VAR diisytiharkan menggunakan kata kunci VAR manakala pembolehubah LET dan const diisytiharkan menggunakan kata kunci LET dan COND.
  • Pembolehubah const tidak berubah sementara pembolehubah LET dan VAR tidak.