javascript उनल ट्रिपल विस्मयादिबोधक चिह्न का उपयोग




जावास्क्रिप्ट डाउनलोड (4)

वहाँ कोई अंतर नहीं है !a और !!!a , चूंकि !!!a बस है !!(!a) और क्योंकि !a एक बुलियन है, !!(!a) सिर्फ इसका दोहरा नकार है, इसलिए वही।

हमारी परियोजनाओं में से एक के स्रोत कोड के माध्यम से देखने पर, मुझे कुछ स्थान मिले हैं जहां हम सशर्त बयानों में तीन विस्मयादिबोधक चिह्नों का उपयोग कर रहे हैं, जैसे:

if (!!!someVar) {
    // ...
}

अब, मैं समझता हूं कि यह किसी तरह का उपयोग किया जाने वाला ऑपरेटर नहीं है, यह एक पंक्ति में सिर्फ तीन !(!(!someVar))) , जैसे !(!(!someVar))) । मुझे समझ नहीं आ रहा है कि इसका क्या उपयोग है - मेरी राय में इसे सुरक्षित रूप से एकल विस्मयबोधक चिह्न से बदला जा सकता है। निम्नलिखित मामलों में मेरी कोशिश होती है कि जब कोई मामला न हो तो !a (गूगल क्रोम कंसोल से सीधे लिया गया) के बराबर नहीं है:

var a = ''
""
!!!a === !a
true
a = 'string'
"string"
!!!a === !a
true
a = null
null
!!!a === !a
true
a = 12
12
!!!a === !a
true
a = {b: 1}
Object {b: 1}
!!!a.c === !a.c // a.c is undefined here
true
a = []
[]
!!!a === !a
true
a = [1,2]
[1, 2]
!!!a === !a
true

क्या मुझे कुछ दुर्लभ (या स्पष्ट) मामला याद आ रहा है?


इसके अलावा, यह exit की तरह है जब आप इसे अपने कंसोल में उपयोग करते हैं।


पहले डबल विस्मयादिबोधक चिह्न एक बूलियन मान के लिए वस्तु के किसी भी मिथ्या मूल्य (अपरिभाषित, अशक्त, 0) या किसी भी सत्य मूल्य पर बदल गया, तो तीसरा इसे नकार देता है।


यह एक विस्मयादिबोधक चिह्न के समान है। इसके पीछे मुख्य विचार प्रोग्रामर के लिए दृश्यता में सुधार करना है। कंपाइलर इसे सिंगल के रूप में ऑप्टिमाइज़ करेगा! ' वैसे भी।





javascript