ການຈັດວັດ JavaScript

JavaScript ກອງການສາມາດໃຊ້ function ຄຳຂໍ້ຄວາມກອງການສຳລັບ.

ທ່ານສາມາດໃຊ້ການປະກາດຫຼືກອງການສິ່ງ

ຄຳສັ່ງກອງການ

ໃນຕອນກ່ອນນີ້ຂອງການສອນນີ້ ທ່ານໄດ້ຮຽນການປະກາດກອງການ:

function ຊື່ກອງການ(ພາສາບັນຊີ) {
   ຄຳສັ່ງທີ່ຈະດຳເນີນ
}

ກອງການທີ່ຖືກປະກາດບໍ່ຈະດຳເນີນທັນດຽວນີ້. ພວກເຂົາຖືກກັກພັກເພື່ອນຳໃຊ້ຫຼັງຈາກນີ້, ພວກເຂົາຈະດຳເນີນຫຼັງຈາກພວກເຂົາຖືກເອິ້ນຫຼັງຈາກນີ້.

ຄວາມຄິດ

function myFunction(a, b) {
     return a * b;
}

ທ້າວທຳການທີ່ເຫຼືອ

ຄຳສັ່ງແມ່ນໃຊ້ເພື່ອສະຫຼາກຄຳສັ່ງ JavaScript ທີ່ສາມາດດຳເນີນ.

ຍ້ອນວ່າການປະກາດກອງການສິ່ງບໍ່ແມ່ນຄຳສັ່ງທີ່ສາມາດດຳເນີນ ບໍ່ມີການປິດຄຳສັ່ງທີ່ຕິດຄັດຈາກຄັດການ ແລະບໍ່ມີການປິດຄຳສັ່ງທີ່ຕິດຄັດຈາກຄັດການທີ່ສຸດທ້າຍ.

ກອງການສິ່ງທີ່ຕັ້ງຊື່.

ກອງການສາມາດໃຊ້ກອງການສິ່ງເພື່ອຄົ້ນຄວ້າ.

ກອງການສິ່ງຢູ່ພາສາບັນຊີ

ຄວາມຄິດ

var x = function (a, b) {return a * b};

ທ້າວທຳການທີ່ເຫຼືອ

ຫຼັງຈາກທີ່ກັກເກັບກອງການສິ່ງຢູ່ພາສາບັນຊີຫຼັງຈາກນີ້ ພາສາບັນຊີຈະສາມາດໃຊ້ຄືກັບ

ຄວາມຄິດ

var x = function (a, b) {return a * b};
var z = x(4, 3);

ທ້າວທຳການທີ່ເຫຼືອ

ກົນຕອງດັ່ງກ່າວພະຍາຍາມປຽບທຽບກັບ:ກອງການທີ່ບໍ່ມີຊື່(ກົນຕອງທີ່ບໍ່ມີຊື່)。

ກອງການທີ່ກັກເກັບໃນພາສາບັນຊີບໍ່ຕ້ອງມີຊື່ກອງການ. ພວກເຂົາຈະມີການໃຊ້ພາສາບັນຊີສະໜາມ.

ກອງການທີ່ຕິດຄັດດ້ວຍສິ່ງສຸດທ້າຍຈາກສິ່ງຂັດສິນຈາກຄັດການ ຍ້ອນວ່າມັນເປັນສິ່ງຂອງຄຳສັ່ງທີ່ສາມາດດຳເນີນ.

ຄວາມປະດິດ Function()

ຄືອີກທີ່ທ່ານໄດ້ເຫັນໃນຕົວຢ່າງກ່ອນໜ້ານີ້ JavaScript ກອງການສາມາດໃຊ້ function ຄຳຂໍ້ຄວາມທີ່ຕັ້ງຊື່.

ກອງການສາມາດໃຊ້ຄືກັບ Function() ຂອງກົນຕອງ JavaScript:

ຄວາມຄິດ

var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);

ທ້າວທຳການທີ່ເຫຼືອ

ທ່ານບໍ່ຈຳເປັນທີ່ຈະໃຊ້ກົນຕອງຄວາມຄິດຂອງກົນຕອງ. ຄຳທີ່ພາບດັ່ງກ່າວຈະຄືກັນ:

ຄວາມຄິດ

var myFunction = function (a, b) {return a * b};
var x = myFunction(4, 3);

ທ້າວທຳການທີ່ເຫຼືອ

ສະເພາະຫຼາຍຄັ້ງທ່ານສາມາດຫຼີກລ່ຽງການໃຊ້: new ຄຳສັບ.

ກົນຕອງປະກາດ

ພວກເຂົາໄດ້ຮຽນໃນການຮຽນບັນຊີຄືນກ່ອນ:

Hoisting ແມ່ນການຍ້າຍຄຳກຳນວຍ ແລະ ຄຳກົນຕອງຂອງ JavaScript:ການປະກາດການຍ້າຍຄຳກຳນວຍ ແລະ ຄຳກົນຕອງໄປຫາຫຼັງການຄວາມຄິດຂອງການດຳເນີນ:

Hoisting ຂອງຄຳຂອງຄຳກຳນວຍ ແລະ ຄຳຂອງກົນຕອງ:

ຍ້ອນນັ້ນກົນຕອງ JavaScript ສາມາດຖືກເອິ້ນກ່ອນການປະກາດ:

myFunction(5);
 function myFunction(y) {
     return y * y;
}

ກົນຕອງທີ່ມີການປະກາດທີ່ມີການດຳເນີນຄັບຄົນເອງຈະບໍ່ຖືກຍົກຂຶ້ນ.

ກົນຕອງປະກາດຄັບຄົນເອງ

ກົນຕອງປະກາດສາມາດດຳເນີນຄັບຄົນເອງ.

ການດຳເນີນຄັບຄົນເອງຈະຖືກເອິ້ນຢ່າງອົງການຖ້າບໍ່ມີການເອິ້ນ:

ກົນຕອງປະກາດສາມາດດຳເນີນຄັບຄົນເອງຢ່າງອົງການຖ້າການປະກາດຫຼັງຈາກ: ()

ທ່ານບໍ່ສາມາດດຳເນີນກົນຕອງປະກາດຕົວເອງ.

ທ່ານຕ້ອງກວດກາກົນຕອງທີ່ຕິດຢູ່ອ້ອມກົນຕອງເພື່ອສະແດງວ່າມັນເປັນຄຳກຳນວຍປະກາດ:

ຄວາມຄິດ

(function () {
    var x = "Hello!!";      // ຂ້ອຍຈະເອິ້ນຕົວເອງຂ້ອຍ
})();

ທ້າວທຳການທີ່ເຫຼືອ

ກົນຕອງດັ່ງກ່າວພະຍາຍາມປຽບທຽບກັບ:ກົນຕອງສານອອກຫຼັງນັ້ນພິເສດອອກຫຼັງນັ້ນ:(ກົນຕອງທີ່ບໍ່ມີຊື່)。

ກົນຕອງສາມາດນຳໃຊ້ໃນຄຳກຳນວຍ:

ກົນຕອງ JavaScript ສາມາດນຳໃຊ້ໃນຄຳຂອງຄຳກຳນວຍ:

ຄວາມຄິດ

function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3);

ທ້າວທຳການທີ່ເຫຼືອ

ກົນຕອງ JavaScript ສາມາດນຳໃຊ້ໃນຄຳສັບພາສາ:

ຄວາມຄິດ

function myFunction(a, b) {
    return a * b;
}
var x = myFunction(4, 3) * 2;

ທ້າວທຳການທີ່ເຫຼືອ

ກົນຕອງແມ່ນປະເພດໂອກາດ

ກົນຕອງໃນ JavaScript typeof ການດຳເນີນງານທີ່ຈະກັບຄືນ "function"。

ບໍ່ດົນປຽບຫຍັງຈະກົນຕອງ JavaScript ຄືປະເພດໂອກາດ.

ກົນຕອງ JavaScript ມີ:ປະກອບແລະກົນຕອງ

arguments.length ຈະກັບຄືນຈຳນວນຕົວເລກທີ່ການເອິ້ນກົນຕອງທີ່ມີ:

ຄວາມຄິດ

function myFunction(a, b) {
    return arguments.length;
}

ທ້າວທຳການທີ່ເຫຼືອ

toString() ກົນຕອງກັບຄຳຂອງຄຳກຳນວຍ:

ຄວາມຄິດ

function myFunction(a, b) {
    return a * b;
}
var txt = myFunction.toString();

ທ້າວທຳການທີ່ເຫຼືອ

定义为对象属性的函数,被称为对象的方法。

为创建新对象而设计的函数,被称为对象构造函数(对象构造器)。

ການນຳໃຊ້ອອກສາຍງານ

ການນຳໃຊ້ອອກສາຍງານອອກສາຍງານຄືບໜ້າສະໜັບສະໜູນການຂຽນຄຳສັ່ງທີ່ຫຼວງຫຼາຍ.

ພວກເຈົ້າບໍ່ຕ້ອງການຂໍ້ບັນຍາ function, return ແລະກະບຽນ.

ຄວາມຄິດ

// ES5
var x = function(x, y) {
  return x * y;
}
// ES6
const x = (x, y) => x * y;

ທ້າວທຳການທີ່ເຫຼືອ

ການນຳໃຊ້ອອກສາຍງານບໍ່ມີ this ຂອງຕົນເອງ. ພວກມັນບໍ່ເປັນການອອກສາຍງານຂອງເປັນການປະກອບງານເປັນບັນດາບັນຫາ.

ການນຳໃຊ້ອອກສາຍງານບໍ່ຖືກກະຕຸ້ນ. ພວກມັນຕ້ອງຖືກກໍານົດກ່ອນການໃຊ້.

ການໃຊ້ const ມີຄວາມປອດໄພຫຼາຍກວ່າ var, ຍ້ອນການປະກອບງານສະແດງວ່າຄວາມຄິດຈະເປັນຄວາມຄິດສະຖິຕິ.

ຖ້າການການປະກອບງານມີພຽງໜຶ່ງຄຳສັ່ງນັ້ນ, ພຽງແຕ່ສາມາດລົບສະນັກຂໍ້ບັນຍາ return ແລະກະບຽນ. ດັ່ງນັ້ນ, ການກັກກັນພວກມັນສາມາດເປັນການກະທຳທີ່ດີ:

ຄວາມຄິດ

const x = (x, y) => { return x * y };

ທ້າວທຳການທີ່ເຫຼືອ

IE11 ຫຼືກ່ວາບໍ່ສາມາດສະໜັບສະໜູນການນຳໃຊ້ອອກສາຍງານ.