सत्य या मिथ्या को स्पष्ट बूलियन में बदलें


97

मेरे पास एक चर है। चलो बुलावा आया toto

यह totoकरने के लिए सेट किया जा सकता है undefined, null, एक स्ट्रिंग, या किसी वस्तु।

मैं यह जांचना चाहूंगा कि क्या totoकिसी डेटा पर सेट है, जिसका अर्थ स्ट्रिंग या ऑब्जेक्ट पर सेट है, और न तो और न undefinedही null, और किसी अन्य चर में संबंधित बूलियन मान सेट करें।

मैंने सिंटैक्स के बारे में सोचा !!, जो इस तरह दिखेगा:

var tata = !!toto; // tata would be set to true or false, whatever toto is.

अगर टोटका या और है तो पहला !सेट होगा , और दूसरा इसे उल्टा करेगा।falseundefinednulltrue

लेकिन यह थोड़ा अजीब लगता है। तो क्या ऐसा करने का कोई स्पष्ट तरीका है?

मैंने पहले से ही इस प्रश्न को देखा , लेकिन मैं एक चर में एक मूल्य निर्धारित करना चाहता हूं, न कि केवल एक ifबयान में इसे जांचें ।


10
इस प्रश्न को एक डुप्लिकेट के रूप में चिह्नित किया गया है लेकिन यदि आप अन्य प्रश्न stackoverflow.com/questions/263965/ पर देखें तो यह बिलकुल अलग है; वे डुप्लिकेट नहीं हैं
सैम

@Sam क्षमा करें, लेकिन मैंने खुद को इस डुप्लिकेट की पुष्टि की, मुझे इस अन्य प्रश्न के बारे में नहीं पता था, लेकिन इससे मेरी समस्या हल हो गई।
अरूचूर

11
@Aracthor यह कोई डुप्लिकेट नहीं है, क्योंकि stackoverflow.com/questions/263965/… उनके बूलियन समकक्षों को केवल "सच" और "झूठे" शब्दों वाले स्ट्रिंग को परिवर्तित करने के बारे में है। यह प्रश्न किसी भी चर को एक बूलियन में बदलने के बारे में है, जो यह सत्य या मिथ्या है।
एलन मैकबी -

जवाबों:


153

हां, आप हमेशा इसका उपयोग कर सकते हैं:

var tata = Boolean(toto);

और यहाँ कुछ परीक्षण हैं:

for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) {
    console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`);
}

परिणाम:

Boolean(number 0) is false
Boolean(number 1) is true
Boolean(number -1) is true
Boolean(string 0) is true
Boolean(string 1) is true
Boolean(string cat) is true
Boolean(boolean true) is true
Boolean(boolean false) is false
Boolean(undefined undefined) is false
Boolean(object null) is false

75
ध्यान दें, बूलियन ("असत्य") सच है, जब आप शायद चाहते हैं कि यह असत्य हो।
स्टर्लिंग बॉर्न

45
पृथ्वी पर क्यों आप "झूठे" स्ट्रिंग को झूठा साबित करना चाहेंगे? यहां तक ​​कि php ऐसा नहीं करता है: D
Danon

1
उसका मतलब है Boolean("false")
रोबो रोबोक

2
@ नोहाविद यह सच है। केवल falseएक स्ट्रिंग है जो एक खाली स्ट्रिंग है ( "")।
रोबो रोबोक

6
बिल्कुल सही। यही कारण है कि "वाक्यांश" का उपयोग करते समय आपको सावधान रहना होगा यदि यह उद्धरण में है और इस प्रकार एक स्ट्रिंग के रूप में व्याख्या की गई है। आप सोच सकते हैं कि आप इसे गलत बता रहे हैं, लेकिन वास्तव में यह सच हो जाएगा - इसलिए मूल चेतावनी।
स्टर्लिंग बॉर्न

0

आप का उपयोग Boolean(obj)या !!objपरिवर्तित truthy/falsyकरने के लिए कर सकते हैं true/false

var obj = {a: 1}
var to_bool_way1 = Boolean(obj) // true
var to_bool_way2 = !!obj // true
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.