सेटिंग डिफ़ॉल्ट जावास्क्रिप्ट में वैकल्पिक मूल्यों आमतौर पर ||
चरित्रजावास्क्रिप्ट में डिफ़ॉल्ट बूलियन मान कैसे सेट करें?
var Car = function(color) {
this.color = color || 'blue';
};
var myCar = new Car();
console.log(myCar.color); // 'blue'
var myOtherCar = new Car('yellow');
console.log(myOtherCar.color); // 'yellow'
काम करता है ऐसा इसलिए है क्योंकि color
undefined
है और undefined || String
हमेशा String
है के माध्यम से किया जाता है। बेशक यह String || undefined
के आसपास अन्य तरीके भी काम करता है String
है। जब दो Strings
मौजूद होते हैं तो पहला व्यक्ति 'this' || 'that'
'this'
जीतता है। यह 'that' || 'this'
'that'
के आसपास दूसरी तरफ काम नहीं करता है।
सवाल यह है कि: मैं बुलियन मूल्यों के साथ इसे कैसे प्राप्त कर सकता हूं?
myCar
के लिए निम्न उदाहरण
var Car = function(hasWheels) {
this.hasWheels = hasWheels || true;
}
var myCar = new Car();
console.log(myCar.hasWheels); // true
var myOtherCar = new Car(false)
console.log(myOtherCar.hasWheels); // ALSO true !!!!!!
ले लो यह काम करता है क्योंकि undefined || true
true
है लेकिन जैसा कि आप इसके लिए myOtherCar
क्योंकि false || true
है true
काम नहीं करता है देख सकते हैं। आदेश बदलना true || false
के रूप में मदद नहीं करता है अभी भी true
है।
इसलिए, क्या मुझे यहां कुछ याद आ रहा है या डिफ़ॉल्ट मान सेट करने का एकमात्र तरीका निम्न है?
this.hasWheels = (hasWheels === false) ? false: true
चीयर्स!
यह स्मार्ट है! मुझें यह पसंद है। – zemirco
@zeMirco: तो क्या आप वास्तव में 'झूठी' को 'सत्य' मानने के अलावा सभी झूठे मूल्यों के लिए पूछ रहे हैं? यदि ऐसा है, तो मुझे आश्चर्य होगा कि आप पहली जगह क्यों '||' का उपयोग करना चाहते हैं। स्पष्ट रूप से 'झूठी' के लिए एक स्पष्ट परीक्षण सबसे सरल समाधान होगा। –
@ थिससिस्टम - वह '||' का उपयोग नहीं करना चाहता था; यह गैर-बूलियन मूल्यों के लिए '||' का उपयोग करने से ही ले जाया गया था। प्रश्न पोस्ट किया गया था, मुझे लगता है, क्योंकि '|| –