Hoisting JavaScript

Hoisting (Hoisting) ແມ່ນພາສາທີ່ JavaScript ຍົກຂຶ້ນການຖະແຫຼງທັງໝົດໄປຫາຕອນທີ່ສຸດ.

ການຖະແຫຼງຂອງ JavaScript ຈະຍົກຂຶ້ນ

ໃນ JavaScript ທ່ານສາມາດຖະແຫຼງພາສາຫລີນຫລັງຈາກພາສາຫລີນຖືກໃຊ້.

ບອກກັບວ່າທ່ານສາມາດໃຊ້ພາສາຫລີນກ່ອນຖະແຫຼງພາສາຫລີນ.

ຄວາມຄິດທີ 1 ກັບຄວາມຄິດທີ 2 ຜົນຂອງມັນບໍ່ຄືກັນ:

ຄວາມຄິດທີ 1

x = 5; // ຕັດສິນຈະການ 5 ໃຫ້ x
elem = document.getElementById("demo"); // ການຄົ້ນຫາບັນດາວັດຖຸ
elem.innerHTML = x;                     // ສະແດງ x ໃນປະກອບ.
var x; // ຖະແຫຼງ x

ທົດລອງດັ່ງກ່າວ

ຄວາມຄິດທີ 2

var x; // ຖະແຫຼງ x
x = 5; // ຕັດສິນຈະການ 5 ໃຫ້ x
elem = document.getElementById("demo"); // ການຄົ້ນຫາບັນດາວັດຖຸ
elem.innerHTML = x;                     // ສະແດງ x ໃນປະກອບ.

ທົດລອງດັ່ງກ່າວ

ເພື່ອເຂົ້າໃຈດີກັບສິນລະຫັດ "hoisting" ທ່ານຕ້ອງໄດ້ເຂົ້າໃຈດີກັບສິນລະຫັດນັ້ນ.

Hoisting ແມ່ນພາສາທີ່ JavaScript ຍົກຂຶ້ນການຖະແຫຼງທັງໝົດໄປຫາຕອນທີ່ສຸດຂອງພາກສ່ວນການໃຊ້ (ຍົກຂຶ້ນໄປຫາຕອນທີ່ສຸດຂອງບົດສະຫຼັບຫລືວິທະຍາສາດ).

ສິນລະຫັດ let ແລະ const

ໃຊ້ let ຫລື const ທີ່ຖະແຫຼງຂອງພາສາຫລີນແລະຄວາມຄືນບໍ່ຈະຍົກຂຶ້ນ!

ກະລຸນາ JS Let / Const ການອ່ານຫລາຍໃນ JS Let ແລະ const。

ການລະບຸຂອງ JavaScript ບໍ່ຈະຍົກຂຶ້ນ

JavaScript ຍົກຂຶ້ນການຖະແຫຼງບໍ່ແມ່ນການລະບຸ。

ຄວາມຄິດທີ 1 ກັບຄວາມຄິດທີ 2 ຜົນຂອງມັນບໍ່ຄືກັນ:

ຄວາມຄິດທີ 1

var x = 5; // ການຈັດຕັ້ງ x
var y = 7; // ລະບຸ y
elem = document.getElementById("demo"); // ການຄົ້ນຫາບັນດາວັດຖຸ
elem.innerHTML = x + " " + y;           // ສະແດງ x ແລະ y

ທົດລອງດັ່ງກ່າວ

ຄວາມຄິດທີ 2

var x = 5; // ການຈັດຕັ້ງ x
elem = document.getElementById("demo"); // ການຄົ້ນຫາບັນດາວັດຖຸ
elem.innerHTML = x + " " + y;           // ສະແດງ x ແລະ y
var y = 7; // ລະບຸ y 

ທົດລອງດັ່ງກ່າວ

ບັນຫາສຸດທ້າຍຂອງ y ຍັງບໍ່ໄດ້ຖືກລະບຸແລ້ວມັນສາມາດເວົ້າໄດ້ຫລືບໍ່?

ຍ້ອນວ່າພຽງແຕ່ການຖະແຫຼງ (var y) ບໍ່ແມ່ນການລະບຸ (=7) ໄດ້ຍົກຂຶ້ນຫາຕອນທີ່ສຸດ。

由于 hoisting,y 在其被使用前已经被声明,但是由于未对初始化进行提升,y 的值仍是未定义。

ຄວາມຈິງ 2 ກໍ່ຄືກັນ:

ຄວາມຈິງ

var x = 5; // ການຈັດຕັ້ງ x
var y;     // ການອະທິບາຍ y
elem = document.getElementById("demo"); // ການຄົ້ນຫາບັນດາວັດຖຸ
elem.innerHTML = x + " " + y;           // ສະແດງ x ແລະ y
y = 7;    // ການຈັດຕັ້ງ 7 ສຳລັບ y

ທົດລອງດັ່ງກ່າວ

ກະລຸນາອະທິບາຍຄວາມສະເຫຼີມຂອງທ່ານໃນຕອນສູງ!

Hoisting (ສຳລັບຜູ້ພັດທະນາຫຼາຍຢ່າງ) ແມ່ນການປະຕິບັດທີ່ບໍ່ເປັນທີ່ຮູ້ຫຼືຖືກສັງເກດຂອງ JavaScript.

ຖ້າຜູ້ພັດທະນາບໍ່ເຂົ້າໃຈການ hoisting, ຄອບຄອບອາດຈະມີບາດບັນຍາ (ບັນຫາ).

ເພື່ອຫລຸດບາດບັນຍາ, ກະລຸນາຍັງຄົງການອະທິບາຍຄວາມສະເຫຼີມທັງໝົດໃນການເລີ່ມຕົ້ນຂອງບັນດາວັດຖຸ.

ຍ້ອນນີ້ນັ້ນກໍ່ແມ່ນວິທີການທີ່ JavaScript ຄົ້ນຫາລວບລວມກິດຈະກຳ, ກະລຸນາຍັງຄົງການບັນລານີ້.

JavaScript ໃນການໃຊ້ບໍ່ມີການອະທິບາຍຄວາມສະເຫຼີມກ່ອນການໃຊ້.

ກະລຸນາສຶກສາພາບດັ່ງກ່າວໃນຫນັງວັນຄັ້ງຫນັງວັນ.use strict