संक्षिप्त जवाब:
नहीं , वे समान नहीं हैं।
लेकिन यह:
if (!fields) {
...
}
इस प्रकार है:
if ((fields === null) || (fields === undefined) || (fields === 0) || (fields === '') || (fields === NaN) || (fields === flase)) {
...
}
लंबे (और बेहतर) उत्तर:
आइए सबसे पहले सत्य और मिथ्या मूल्यों की बात करते हैं।
यह सब तब होता है जब आप एक बूलियन के रूप में किसी चीज का मूल्यांकन करते हैं। जावास्क्रिप्ट में, यह तब होता है जब आप ifबयान जैसी चीजों का उपयोग करते हैं ; तार्किक ऑपरेटरों की तरह ||, !या &&; या Boolean()समारोह।
Boolean()समारोह एक मूल्य या नहीं और फिर स्वीकार करता है trueया false।
उदाहरण के लिए:
var age = 1; // Let's evaluate age as a boolean
Boolean(age); // true
आगे बढ़ो और इसे नोड उत्तर में आज़माएं।
बूलियन केवल किया जा सकता है trueया falseहै, तो के रिटर्न मान Boolean() चाहिए या तो trueया false। इस मामले में, हम मूल्य में पारित हुए 1, और जब एक बूलियन के रूप में मूल्यांकन किया जाता 1है true।
महत्वपूर्ण: जब एक बूलियन के रूप में मूल्यांकन किया जाता है, तो एक मूल्य सही या गलत होना चाहिए। वे केवल दो विकल्प हैं।
जावास्क्रिप्ट में, केवल 6 झूठे मूल्य हैं। मान falseजब एक बूलियन के रूप में मूल्यांकन किया जाएगा । वे हैं: false, 0, "", null, undefined, और NaN। इसलिए अगर इनमें से किसी भी मूल्य का मूल्यांकन एक बूलियन के रूप में किया जाता है, तो वे गलत होंगे:
Boolean(false) // false
Boolean(0) // false
Boolean("") // false
Boolean(null) // false
Boolean(undefined) // false
Boolean(NaN) // false
इसका मतलब यह है कि जावास्क्रिप्ट में किसी भी अन्य मूल्य, trueजब एक बूलियन के रूप में मूल्यांकन किया जाएगा । तो जावास्क्रिप्ट में हर दूसरे मूल्य सत्य है।
ऑपरेटर booleanका उपयोग करके कुछ के रूप में मूल्यांकन करने का एक और आसान तरीका है !। Booleanफ़ंक्शन की तरह , यह एक बूलियन के रूप में एक मूल्य का मूल्यांकन करता है। लेकिन सत्य मूल्य बन जाते हैं falseऔर मिथ्या मूल्य बन जाते हैं true।
!false // true
!0 // true
!"" / true
!null // true
!undefined // true
!NaN // true
फिर से, नोड उत्तर या कुछ और में यह सुनिश्चित करने के लिए प्रयास करें कि आप समझ रहे हैं।
तो यह कथन:
if (!fields) {
...
}
निम्नलिखित कह रहा है: "यदि fields, जब एक बूलियन के रूप में मूल्यांकन किया जाता है, गलत है, तो इस कथन के अंदर कोड चलाएं।"
अपने पहले बयान के लिए के रूप में:
var fields = options.fields || ['id', 'query'];
आप तार्किक या ऑपरेटर के साथ काम कर रहे हैं, जो यह सुनिश्चित करने के बारे में पढ़ने लायक है कि आप क्या समझते हैं। https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators