JavaScript හි වම් පස ඇති ශ්රිත ප්රකාශනය
පහත කේතය සලකා බලමු:
+function func() {
console.log('!');
}
ඔබ දැනටමත් දන්නා පරිදි, මෙම ශ්රිතය ශ්රිත ප්රකාශනයකි, එයට නමක් ලබා දී ඇති නමුත් (නමක් තිබීම කිසිසේත් නිර්ණායකයක් නොවන බව අපි දැනටමත් සොයාගෙන ඇත්තෙමු). මෙම ප්ලස් ලකුණ ඉවත් කරන්න - එවිට අපට Function Declaration ලැබේ:
function func() {
console.log('!');
}
ශ්රිතයට පෙර පේළියේ + ලකුණ යොදමු -
එය නැවතත් Function Expression බවට පත්වේ:
+
function func() {
console.log('!');
}
දැන් ප්ලස් ලකුණට පසුව 1 අංකය
සහ අර්ධ කොමාව යොදමු - අපගේ ශ්රිතය Function
Declaration බවට පත්වේ:
+1;
function func() {
console.log('!');
}
ඇයි එසේ ද: මන්දයත් පළමු පේළියේ ලියා ඇත්තේ එක් සම්පූර්ණ විධානයක් වන අතර, එය අර්ධ කොමාවකින් වසා ඇත. එබැවින් මෙම විධානය අපගේ ශ්රිතයට කිසිදු ආකාරයකින් බලපාන්නේ නැත.
ඇත්ත වශයෙන්ම අර්ධ කොමාව ඉවත් කළ හැකිය, JavaScript හි එය අනිවාර්ය නොවේ නමුත් - ශ්රිතය එසේම Function Declaration ලෙස ඉතිරි වේ:
+1
function func() {
console.log('!');
}
1 ට පසුව තවත් ප්ලස්
ලකුණක් යොදන්නේ නම්, ශ්රිතය Function Expression බවට පත්වේ:
+1+
function func() {
console.log('!');
}
ඇයි එසේ ද: මන්දයත් පළමු පේළියේ අසම්පූර්ණ ප්රකාශනයක් ඇත - ප්ලස් ලකුණ යොදා ඇති අතර ඊට පසු කිසිවක් නැත. එබැවින් JavaScript අර්ථකථනය සලකන්නේ මෙම ප්ලස් ලකුණ පහත පේළියට, එනම් අපගේ ශ්රිතයට අදාළ බවයි.
පළමු පේළියේ සම්පූර්ණ ප්රකාශනයක් තිබේ නම්, JavaScript ස්වයංක්රීයව අර්ධ කොමාවක් යොදන අතර මෙම ප්රකාශනය කිසිදු ආකාරයකින් අපගේ ශ්රිතයට බලපාන්නේ නැත.
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
-
function func() {
console.log('!');
}
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
-1;
function func() {
console.log('!');
}
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
-1
function func() {
console.log('!');
}
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
1
function func() {
console.log('!');
}
පෙන්වා ඇති ශ්රිතය Function Declaration ද නැතහොත් Function Expression ද යන්න තීරණය කරන්න:
-1-
function func() {
console.log('!');
}