ဂျက်တ်စ် လက်ခံဆိုင်ရာ

JavaScript 函数是通过 function 关键词定义的。

您可以使用函数ဖော်ပြ或函数表达式

函数声明

在本教程中稍早之前,您学到了通过如下语法ဖော်ပြ函数:

function functionName(parameters) {
   要执行的代码
}

被声明的函数不会直接执行。它们被“保存供稍后使用”,将在稍后执行,当它们被调用时。

အကျိုးသုံး

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

ကိုယ်တိုင် ကြိုးစားကြည့်ပါ

分号用于分隔可执行的 JavaScript 语句。

由于函数ဖော်ပြ不是可执行的语句,以分号结尾并不常见。

函数表达式

JavaScript 函数也可以使用表达式来定义。

函数表达式可以在变量中存储:

အကျိုးသုံး

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

ကိုယ်တိုင် ကြိုးစားကြည့်ပါ

在变量中保存函数表达式之后,此变量可用作函数:

အကျိုးသုံး

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

ကိုယ်တိုင် ကြိုးစားကြည့်ပါ

အထက်ဘက် ဘက်လုပ်မှု အမှတ်အသား匿名函数(အမည်မပါဘဲသော ဘက်လုပ်မှု)

存放在变量中的函数不需要函数名。他们总是使用变量名调用。

အပြီးသတ်ချက်မှာ အမည်သည် ပြောင်းလဲသည် သည့် အပေါ်အား

Function() ကိုယ်စားပြုသူ

ကြိုးစားသည့် အမှတ်သုံးအချက်အလက်များတွင် function ကိုက်ယူထားသော အကြောင်းသတင်းများဖြင့်

ပုံစံသည် အမည်ဖြင့် Function()} အသုံးပြုသည်

အကျိုးသုံး

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 ကို အားလုံး ပြင်းပြီးဖော်ပြပြင်းပြီး အသုံးပြုသည်

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 ဘက်လုပ်မှုများ အားဗဟုသုတနှင့်ဘက်လုပ်မှု

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 ကို သုံးစွဲခြင်း ကောင်းမွန်သည်။ ပြောင်းလဲသူ အချက် အား အခြေခံ အချက် ဖြစ်သည်။

ပြောင်းလဲသူ တစ်ခု သာ ဖြစ်လျှင် အပြောင်းလဲသူ သုံးစားသူ နှင့် အကျဉ်းချုပ် ကို ပယ်ဖျက်နိုင်သည်။ အခြားအခါ အပြောင်းလဲသူ သုံးစားသူ နှင့် အကျဉ်းချုပ် ကို ပယ်ဖျက်နိုင်သည်။

အကျိုးသုံး

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

ကိုယ်တိုင် ကြိုးစားကြည့်ပါ

IE11 သို့ အရှိန် အထိ အကြောင်းလုပ် ပါဘဲ