क्यों स्ट्रिंग के लिए name
पहचानकर्ता डाली जब वस्तु पर var
उपयोग कर रहा है काम destructuringवस्तु विनाशकारी असाइनमेंट का उपयोग करते समय, संपत्ति "नाम" स्ट्रिंग करने के लिए क्यों डाली जाती है?
let obj = {name: 1};
console.log(typeof obj.name, obj.name); // `"number"`, `1`
को देखते हुए?
let obj = {name: 1};
var {name} = obj;
console.log(name, typeof name); // `1` `string`
लेकिन let
या const
का उपयोग नहीं?
let obj = {name: 1};
let {name} = obj;
console.log(name, typeof name);
हमकी तुलना में अलग परिणाम देने var
के महत्व के रूप में एक अलग पहचानकर्ता
let obj = {name: 1};
var {name:_name} = obj;
console.log(_name, typeof _name);
हालांकि उत्सुक को परिभाषित करते हुए इस अप्रत्याशित परिणाम से बच सकते हैं name
ब्राउज़र वातावरण पर पहचानकर्ता के लिए 210 या const
?
इस व्यवहार इंजन पर एक जैसी है? –
@torazaburo हां। क्रोमियम 58 और फायरफॉक्स 53 * निक्स, 32 बिट पर, एक ही परिणाम उत्पन्न करते हैं। मैक या किनारे पर सफारी में * इंडो पर कोशिश नहीं की है। – guest271314
@torazaburo 'window.name' से संबंधित है। हालांकि 'var' और' let', 'const' के लिए अलग-अलग परिणाम क्यों हैं? – guest271314