JS မှာ function တွေကို name ရော nameless ရောလက်ခံပါတယ်။ function execute လုပ်တဲ့အခါ function name နဲ့ပြန်ခေါ်ရပါတယ်။nameless အတွက်တော့ var တစ်ခုထဲသွားထည့်ပေးမှ ရှေ့ဆက်နိုင်မှာပါ။
function a(){ }
function name aဖြစ်ပါတယ်.
a();
function a(){ }
function name aဖြစ်ပါတယ်.
a();
ဒါက executive function ပါ. ဒါကမှရလဒ်ပါ။
var a= function (){….}
function name တောင်မပါပါဘူး.a ဟာ value of function assigned ဖြစ်ပြီး return result (ရလဒ်)မဟုတ်ပါ။
var a= function (){….}
function name တောင်မပါပါဘူး.a ဟာ value of function assigned ဖြစ်ပြီး return result (ရလဒ်)မဟုတ်ပါ။
ဒီနေရာမှာတစ်ခုထပ်ရှင်းပြချင်တာက လိုအပ်ချက်အရ function scope ထဲမှာ variable ထပ်ကြေငြာရတယ်ဆိုရင်သူ့ကို local variable လို့ခေါ်ပါတယ်။သူ့ကို function အပြင်ဘက်မှာသုံးလို့မရပါဘူး။ function ရဲ့အပြင်ဘက်မှာ ကြေငြာထားတဲ့ variableကိုတော့ global variable လို့ခေါ်ပါတယ်.သူ့ကို function ထဲ ကနေလည်းလှမ်းခေါ်နိုင်ပါတယ်။
var message= “in global”;
var a =function (){
var message= “in local”;
console.log(message);
b();
}
function b(){
console.log(message);
};
result ဘာထွက်မယ်ထင်လဲ၊?
in local တစ်ကြောင်း, in global တစ်ကြောင်းထွက်လာပါမယ်။ function b ကို a ကနေလှမ်းခေါ်ထားပေမယ့် b ထဲကိုရောက်နေမယ့် message တန်ဖိုးဟာ “in global”ပဲဖြစ်နေမှာမို့ပါ။
ဥပမာလေးတွေလေ့လာကြည့်ရအောင်။
var message= “in global”;
var a =function (){
var message= “in local”;
console.log(message);
b();
}
function b(){
console.log(message);
};
result ဘာထွက်မယ်ထင်လဲ၊?
in local တစ်ကြောင်း, in global တစ်ကြောင်းထွက်လာပါမယ်။ function b ကို a ကနေလှမ်းခေါ်ထားပေမယ့် b ထဲကိုရောက်နေမယ့် message တန်ဖိုးဟာ “in global”ပဲဖြစ်နေမှာမို့ပါ။
ဥပမာလေးတွေလေ့လာကြည့်ရအောင်။
// ***** String concatination
var string = "Hello";
// string += " World";
string = string + " World";
console.log(string + "!");
+= ဆိုတာမူလတန်ဖိုးမှာပဲ ထပ်ပေါင်းထည့်သွင်းမယ်လို့ပြောတာပါ။ဒါကြောင့် string + world နဲ့တူတူပါပဲ။ Js မှာစာကြောင်းတစ်ကြောင်းနဲ့တစ်ကြောင်း ဆက်ဖို့ + ကိုသုံးပါတယ်။
// ***** Regular math operators: +, -, *, /
console.log((5 + 4) / 3);
console.log(undefined / 5);
function test1 (a) {
console.log( a / 5);
}
test1();
test1 ကို execute လုပ်တဲ့အခါ ဘာရမလဲ ? အခု parameter ပါတဲ့ function လေးတွေကြည့်ကြည့်ရအောင် ။ parameter ကို argument လို့လည်းခေါ်ပါတယ်။
function multiply(x, y) {
return x * y;
}
multiply.version = "v.1.0.0";
console.log(multiply.version);
var ans = multiply (4,5);
compare က function name, xနဲ့y က argument, argument မှာ var ကြေငြာစရာမလိုပါ။argument တွေကိုတော့ return ပြန်ပြဖို့ခေါ်တဲ့အခါ ထည့်သွင်းပေးရပါတယ်။ return ဆိုတာက keyword ပါ.အဖြေထုတ်ပြဖို့သုံးပါတယ်။ အခုဥပမာလေးကိုကြည့်ကြည့်မယ်ဆိုရင် - answer မှာ ဘာ result ထွက်မလဲ? multiply. version ကိုပြခိုင်းတဲ့အခါ ဘာ result ရမလဲ? နောက်ထပ်- multiply(4,” a”); ဆိုရင် ဘာ resultရမလဲ၊? argument ထည့်ရမယ့် function ဖြစ်ပေမယ့် multiply() လို့ပဲရေးပြီး execute လုပ်ခိုင်းမယ်ဆိုဘာ result ရမလဲ?
ဒီဥပမာလေးတွေကိုလည်းဆက်လေ့လာပေးပါဦး….
ဒီဥပမာလေးတွေကိုလည်းဆက်လေ့လာပေးပါဦး….
// Function factory
function makeMultiplier(multiplier) {
var myFunc = function (x) {
return multiplier * x;
};
return myFunc;
}
var multiplyBy3 = makeMultiplier(3);
console.log(multiplyBy3(10));
var doubleAll = makeMultiplier(2);
console.log(doubleAll(100));
// Passing functions as arguments
function doOperationOn(x, operation) {
return operation(x);
}
var result = doOperationOn(5, multiplyBy3);
console.log(result);
result = doOperationOn(100, doubleAll);
console.log(result);
ဆက်ပြီးတော့ လေ့လာနေတဲ့သူငယ်ချင်းတို့အတွက် မှတ်ထားသင့်တဲ့အရမ်းအသုံးဝင်တဲ့ဆိုက်တစ်ချို့ပြော ပြပေးချင်ပါသေးတယ်။အောက်ကဆိုက်လေးတွေကိုမှတ်ထားပါ။
https://jsfiddle.net/
CSS ရော JS ရောအတွက် ကိုယ်ရေးမယ့် Code တွေကို text editor တစ်ခုလို သွား စမ်းကြည့်လို့ရပါတယ်။
http://codepen.io/
CSS ရော JS ရော ရေးပြီးသား Design တွေကိုအခမဲ့ယူလို့ရပါတယ် ။စမ်းလို့ရပါတယ်။သွားစမ်းကြည့်ပါ။
http://stackoverflow.com/
ဒီဆိုက်ကအိုင်တီသမားတွေလက်စွဲဆိုက်တစ်ခုပါ.မသိတာမှန်သမျှမေးလို့ရပါတယ်။
ရှေ့သင်ခန်းစာမှာတော့ Javascript ရဲ့ language construct အကြောင်းရှင်းပြပါမယ်။
https://jsfiddle.net/
CSS ရော JS ရောအတွက် ကိုယ်ရေးမယ့် Code တွေကို text editor တစ်ခုလို သွား စမ်းကြည့်လို့ရပါတယ်။
http://codepen.io/
CSS ရော JS ရော ရေးပြီးသား Design တွေကိုအခမဲ့ယူလို့ရပါတယ် ။စမ်းလို့ရပါတယ်။သွားစမ်းကြည့်ပါ။
http://stackoverflow.com/
ဒီဆိုက်ကအိုင်တီသမားတွေလက်စွဲဆိုက်တစ်ခုပါ.မသိတာမှန်သမျှမေးလို့ရပါတယ်။
ရှေ့သင်ခန်းစာမှာတော့ Javascript ရဲ့ language construct အကြောင်းရှင်းပြပါမယ်။