আমি জানি for... in
লুপটি কী (এটি কী দ্বারা পুনরাবৃত্তি হয়) তবে প্রথমবার শুনেছি for... of
(এটি মান দিয়ে পুনরাবৃত্তি করে)।
আমি for... of
লুপ দিয়ে বিভ্রান্ত আমি অ্যাডজেকশন পাইনি। এটি নীচের কোড:
var arr = [3, 5, 7];
arr.foo = "hello";
for (var i in arr) {
console.log(i); // logs "0", "1", "2", "foo"
}
for (var i of arr) {
console.log(i); // logs "3", "5", "7"
// it is does not log "3", "5", "7", "hello"
}
আমি যা পেয়েছি তা হ'ল for... of
সম্পত্তি মানগুলি পুনরাবৃত্তি করে। তাহলে কেন এটি "3", "5", "7", "hello"
পরিবর্তে লগ (রিটার্ন) না "3", "5", "7"
? তবে for... in
প্রতিটি কী ( "0", "1", "2", "foo"
) এর উপরে লুপ পুনরাবৃত্তি হয় । এখানে কী দ্বারা for... in
লুপটি পুনরাবৃত্তি হয় foo
। তবে সম্পত্তির for... of
মানের উপর পুনরাবৃত্তি হয় না । কেন এমন হয়?foo
"hello"
সংক্ষেপে দীর্ঘ গল্প:
এখানে আমি for... of
লুপ কনসোল । এটি লগ করা উচিত "3", "5", "7","hello"
কিন্তু এখানে এটি লগ "3", "5", "7"
। কেন?
for ... of
ব্যবহার করে সমস্যাগুলি সমাধান করার জন্য ভাষায় আনা হয়েছিল for ... in
। Array.prototype
এমনভাবে সংশোধন করা যেতে পারে যে অতিরিক্ত সম্পত্তি পাওয়া যায়, এটির পুনরাবৃত্তি করা এটি অনিরাপদ হয়ে যায় কারণ আপনি অপ্রত্যাশিত নন সংখ্যাযুক্ত কীগুলি পেতে পারেন।
of
কীওয়ার্ডের (লুপের জন্য… এর) নকল নয় , কারণ এটি সাধারণ ওভারভিউ জিজ্ঞাসার চেয়ে বৈশিষ্ট্যের একটি নির্দিষ্ট আচরণ সম্পর্কে জিজ্ঞাসা করে।
for <key> in
" এবং " for <value> of
" বলার for..of