ইএস 6-তে বাবেলের গাইড বলেছেন:
let
নতুনvar
।
স্পষ্টতই কেবল পার্থক্যটি হ'ল var
বর্তমান ফাংশনটি স্কোপড হয়ে যায় , যখন let
বর্তমান ব্লকে স্কোপ হয় । এই উত্তরে কিছু ভাল উদাহরণ রয়েছে ।
আমি var
ES6 কোডে ব্যবহারের কোনও কারণ দেখতে পাচ্ছি না । এমনকি আপনি যদি পুরো ফাংশনে একটি প্রদত্ত পরিবর্তনশীলকে স্কোপ করতে চান, আপনি let
ফাংশন ব্লকের শীর্ষে ডিক্লারেশনটি রেখে এটি করতে পারেন , যা var
প্রকৃত সুযোগটি নির্দেশ করার জন্য আপনাকে যেভাবেই করা উচিত । এবং যদি আপনি কোনও for
ব্লক বা অন্য কোনও কিছুতে আরও সূক্ষ্মভাবে স্কোপ করতে চান তবে আপনি এটিও করতে পারেন।
সুতরাং আমার প্রবৃত্তিটি var
ES6 কোডটি লেখার সময় পুরোপুরি ব্যবহার বন্ধ করা ।
আমার প্রশ্ন, আমি কি এই সম্পর্কে ভুল? এমন কোন বৈধ মামলা আছে যেখানে var
তার চেয়ে বেশি পছন্দনীয় হবে let
?
let
কোনও ফাংশনের শীর্ষে কোনও বিবৃতি দেন তবে আমি মনে করি এটি ঠিক স্পষ্টভাবেই যে আপনি এটি পুরো ফাংশনটিতে স্কোপ করার ইচ্ছা করেছিলেন। আমি মনে করি না var
ব্যবহারটি এটিকে শীর্ষে সন্ধানের চেয়ে আরও স্পষ্ট করে তোলে।
var
এখনও বিদ্যমান, পিছনে-সামঞ্জস্য। এটি যদি না হয়, তারা var
সম্পূর্ণরূপে সরিয়ে ফেলত, বা let
প্রথম স্থানে কখনও পরিচয় করিয়ে দেওয়া হত না , পরিবর্তে শব্দার্থক শব্দটির পরিবর্তে var
এটির পক্ষে যুক্তিযুক্তভাবে কী হওয়া উচিত ছিল।
var
বলে মনে হচ্ছে এবং তৃতীয় ধরণের পরিবর্তনশীল যে চারপাশে ছড়িয়ে পড়েছে তা নিশ্চিত করার পক্ষে যথেষ্ট নয়। আপনি let
একটি সম্পূর্ণ ফাংশনটিতে কেবলমাত্র ফাংশনের শীর্ষে রেখে এটিকে একটি স্কোপ করতে পারেন , যা var
কোনও ব্লকে লেখার চেয়ে অনেক স্পষ্ট ((এটি সেই ব্লকটি থেকে উত্তোলন করার জন্য যাতে আপনি এটি ব্লকের বাইরে ব্যবহার করতে পারেন) - অদ্ভুত) তিনি হুঁশিয়ারি দিয়েছিলেন যে আপনি যদি let
কোনও ফাংশন নিয়ে সুযোগ পান তবে "এটি ঠিক অবস্থান যা সিনট্যাক্সের চেয়ে পার্থক্যকে নির্দেশ করে", তবে আমি মনে করি এটি একটি ভাল জিনিস।
var
। তিনি রাখার জন্য তিনি যে উদাহরণগুলি উপস্থাপন করেছেন তা সংবিধানযুক্ত var
বলে মনে হয় - এবং এটি গুরুতর কোডিং ত্রুটির উপর ভিত্তি করে । কোনও ত্রুটি হিসাবে চালানো এবং ভাষার ক্রিয়াগুলি ব্যবহারের চেয়ে এমন ত্রুটিগুলি সংশোধন করতে বাধ্য হওয়া আরও ভাল যে এটির সাথে দূরে সরে যায়! এরপরে কী, ক্র্যাশ প্রতিরোধের জন্য সমস্ত কিছু চেষ্টা / ক্যাপচারে গুটিয়ে ফেলার পরামর্শ দিন? সেই লিঙ্কটির বাকী অংশটি ভাল তবে আমি সেই বিশেষ অংশটির সাথে মোটেও একমত নই।
var
সচেতন সূচক হিসাবে ব্যবহার করা এই ভেরিয়েবলটি পুরো ফাংশনে স্কোপ করার উদ্দেশ্যে তৈরি করা একটি দরকারী "স্ব-ডকুমেন্টিং" কনভেনশন হতে পারে ।