मुझे पता है कि 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