উত্তর:
ফাংশন ঘোষণার পরে সেমিকোলনগুলি প্রয়োজন হয় না ।
এর ব্যাকরণটি স্পেসিফিকেশনটিতেFunctionDeclaration
এভাবে বর্ণিত :
function Identifier ( FormalParameterListopt ) { FunctionBody }
ব্যাকরণগতভাবে কোনও সেমিকোলন নেই, তবে ভাবতে পারেন কেন?
সেমিকোলন একে অপরের থেকে পৃথক পৃথক বিবৃতি দেয় , এবং FunctionDeclaration
একটি বিবৃতি নয় ।
FunctionDeclarations
কোড কার্যকর করার ক্ষেত্রে প্রবেশের আগে মূল্যায়ন করা হয়, উত্তোলন এই আচরণটি ব্যাখ্যা করতে ব্যবহৃত একটি সাধারণ শব্দ ।
"ফাংশন ডিক্লেয়ারেশন" এবং "ফাংশন স্টেটমেন্ট" পদগুলি প্রায়শই ভুলভাবে বিনিময়যোগ্য হিসাবে ব্যবহৃত হয়, কারণ ECMAScript নির্দিষ্টকরণে বর্ণিত কোনও ফাংশন বিবৃতি নেই, তবে কিছু ব্যায়াম রয়েছে যা তাদের ব্যাকরণে একটি ফাংশন বিবৃতি অন্তর্ভুক্ত রয়েছে, উল্লেখযোগ্যভাবে মজিলা- তবে আবার এটি মানহীন।
তবে আপনি যেখানে যেখানে ব্যবহার করবেন সেমিকোলনগুলি সর্বদা সুপারিশ করা হয় FunctionExpressions
, উদাহরণস্বরূপ:
var myFn = function () {
//...
};
(function () {
//...
})();
আপনি যদি উপরের উদাহরণের মধ্যে প্রথম কার্যকারিতার পরে সেমিকোলনটি বাদ দেন তবে আপনি সম্পূর্ণ অনাকাঙ্ক্ষিত ফলাফল পাবেন:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
প্রথম ফাংশনটি তাত্ক্ষণিকভাবে কার্যকর করা হবে, কারণ দ্বিতীয়টির চারপাশের প্রথম বন্ধনীগুলি, হিসাবে ব্যাখ্যা করা হবে Arguments
একটি ফাংশন কল ।
প্রস্তাবিত বক্তৃতা:
FunctionDeclaration
বনাম FunctionExpression
)আমি এগুলি ফাংশন-এ-ভেরিয়েবল ঘোষণার পরে ব্যবহার করি:
var f = function() { ... };
তবে শাস্ত্রীয় ধাঁচের সংজ্ঞা অনুসারে নয়:
function f() {
...
}
জেএস লিন্ট ডি-ফ্যাক্টো কনভেনশন, এবং এটি ফাংশন বডি পরে কোনও সেমিকোলন বলে না। দেখুন "সেমিকোলন" অধ্যায়।
শুধু ধারাবাহিক থাকুন! তাদের প্রয়োজন হয় না, তবে আমি ব্যক্তিগতভাবে সেগুলি ব্যবহার করি কারণ বেশিরভাগ সংশোধন কৌশলগুলি আধা-কোলনের উপর নির্ভর করে (উদাহরণস্বরূপ, প্যাকার )।
সত্যিই আপনার পছন্দ উপর নির্ভর করে। আমি আধা কোলনের সাথে কোডের লাইনগুলি শেষ করতে চাই কারণ আমি জাভা, সি ++, সি # ইত্যাদি ব্যবহার করি, তাই আমি জাভাস্ক্রিপ্টে কোডিংয়ের জন্য একই মান ব্যবহার করি।
যদিও আমি সাধারণত আধা কলোনগুলিতে ফাংশন ঘোষণা শেষ করি না তবে এটি কেবল আমার পছন্দ।
ব্রাউজারগুলি এটি যে কোনও উপায়ে চালাবে, তবে সম্ভবত কোনও দিন তারা এটিকে পরিচালনা করার জন্য আরও কঠোর মান নিয়ে হাজির হবে।
কোডের উদাহরণ আমি লিখব:
function handleClickEvent(e)
{
// comment
var something = true; // line of code
if (something) // code block
{
doSomething(); // function call
}
}
এটি আসলে কনভেনশন বা ধারাবাহিকতার ইস্যুর চেয়ে বেশি।
আমি মোটামুটি নিশ্চিত যে প্রতিবেদনের পরে সেমিকোলন স্থাপন না করা অভ্যন্তরীণ পার্সারকে ধীর করে দেয় কারণ এটি বিবৃতিটির শেষ কোথায় রয়েছে তা নির্ধারণ করতে হবে। আমি আশা করি আপনার কাছে ইতিবাচকভাবে এটি নিশ্চিত করার জন্য আমার কাছে কয়েকটি সহজ নম্বর ছিল তবে আপনি নিজে এটি গুগল করতে পারেন। :)
এছাড়াও, আপনি কোডটি সংক্ষেপিত বা সংক্ষিপ্তকরণ করার সময়, আধা-কোলনের অভাব আপনার স্ক্রিপ্টের একটি সংক্ষিপ্ত সংস্করণে নিয়ে যেতে পারে যা আপনি যা চান তা করেন না কারণ সমস্ত সাদা স্থান চলে যায়।
আমি যখন আমার স্ক্রিপ্টগুলি মিনিমাইজ করেছিলাম তখন বুঝতে পারি যে সমান চিহ্ন দিয়ে শুরু হওয়া ফাংশনগুলির জন্য আমার সেমিকোলন ব্যবহার করা উচিত। যদি আপনি কোনও ফাংশনটি ভার হিসাবে সংজ্ঞায়িত করেন তবে হ্যাঁ আপনাকে সেমিকোলন ব্যবহার করা উচিত।
সেমিকোলন দরকার
var x = function(){};
var x = new function(){};
this.x = function(){};
সেমিকোলনের দরকার নেই
function x(){}
সহজ:
সেমিকোলন ত্যাগ করা ভাল অনুশীলন is ;
ফাংশন ধনুর্বন্ধনী শেষ হওয়ার পরে । তারা বছরের পর বছর ধরে সেরা অনুশীলন হিসাবে বিবেচিত হয়।
এগুলি সর্বদা ব্যবহার করার একটি সুবিধা হ'ল যদি আপনি নিজের জাভাস্ক্রিপ্টটি ছোট করতে চান।
জাভাস্ক্রিপ্টকে সংশোধন করার সাথে সাথে ফাইলের আকারটি কিছুটা কমাতে সহায়তা করে।
তবে উপরের সেরা অনুশীলন এবং উত্তর হিসাবে, এটি কোনও ফাংশন ট্যাগের পরে ব্যবহার করার প্রস্তাব দেওয়া হয়নি।
আপনি যদি সেমিকোলন ব্যবহার না করেন এবং আপনি যদি সংশোধন করতে চান (যদি অনেক বিকাশকারী তাদের সাইটের মতো অনেকগুলি জাভাস্ক্রিপ্ট ব্যবহার করে তবে এটি করতে চান) আপনি সমস্ত ধরণের ত্রুটি / সতর্কতা পেতে পারেন।
কোনও ক্রিয়াকলাপের পরে সেমিকোলন এটি ব্যবহারের প্রয়োজন হয় না বা না করা আপনার প্রোগ্রামে ত্রুটি সৃষ্টি করে না। তবে আপনি যদি নিজের কোডটি ছোট করার পরিকল্পনা করেন তবে ফাংশনের পরে সেমিকোলন ব্যবহার করা ভাল ধারণা। উদাহরণস্বরূপ বলুন আপনার নীচের মত কোড রয়েছে
//file one
var one=1;
var two=2;
function tryOne(){}
function trytwo(){}
এবং
//file two
var one=1;
var two=2;
function tryOne(){};
function trytwo(){};
যখন আপনি উভয়কে সংক্ষিপ্ত করবেন, আপনি নিম্নলিখিত আউটপুট হিসাবে পাবেন
//file one
var one=1;var two=2;function tryOne(){}
function trytwo(){}
এবং
//file two
var one=1;var two=2;function tryOne(){};function trytwo(){};