को परिभाषित करने के लिए सेट करना कहें कि मेरे पास कुंजी बार और मान xyz के साथ एक एसोसिएटिव ऐरे फू है।जावास्क्रिप्ट में क्या अधिक कुशल है, किसी तत्व को हटाने या इसे स्पष्ट रूप से
console.log(Foo['bar']);
>> xyz
delete Foo['bar'];
console.log Foo['bar'];
>> undefined
Foo['bar'] = 'xyz';
console.log(Foo['bar']);
>> xyz
Foo['bar'] = undefined;
console.log (Foo['bar']);
>> undefined
मेरा प्रश्न यह है कि, दोनों में से कौन सा अधिक कुशल है, क्या वे किसी भी तरह से भिन्न हैं? क्या कोई परिदृश्य है जब मुझे दूसरे पर एक का उपयोग करना चाहिए?
धन्यवाद!
परिणाम:
की मदद और मुझे jsperf दिखाने के लिए आप सभी को धन्यवाद। इसे अपरिभाषित करने के लिए सेट करना (अपेक्षाकृत) काफी तेज़ हो जाता है, फिर हटाएं, हालांकि नीचे दी गई सभी चेतावनियां भी बहुत रोचक हैं (वास्तव में, मैं शायद बाएं क्षेत्र से भविष्य की त्रुटियों से बचने के लिए बहुत आगे जा रहा हूं)।
http://www.jsperf.com पर जाएं और पता लगाएं। – jAndy
पहले से ही परीक्षण किया गया है? http://jsperf.com/delete-vs-undefined-vs-null/3 – JSuar
'अपरिभाषित' की कुंजी सेट करना आपके ऑब्जेक्ट में कुंजी से छुटकारा नहीं पाता है: http://i.imgur.com/LvPDC .png – Blender