यह उत्तर कॉफ़ीस्क्रिप्ट के पुराने संस्करण के लिए है। यदि आप अधिक उत्तर तिथि चाहते हैं तो (जुलाई 2014 तक) जैदर का उत्तर देखें।
यह कॉफ़ीस्क्रिप्ट वह करता है जो आप चाहते हैं कि मुझे लगता है:
if not MyVariable?
MyVariable = "assign a value"
जो उत्पादन करता है:
if (!(typeof MyVariable !== "undefined" && MyVariable !== null)) {
MyVariable = "assign a value";
}
अगर आप इस कोड के रूप में अपरिभाषित पर MyVariableसेट MyVariableकरते हैं , तो Nb यदि आप पहली बार असाइनमेंट करते हैं , तो यह निम्नलिखित के लिए संकलित करता है:
if (!(MyVariable != null)) {
MyVariable = "assign a value";
}
मेरा मानना है कि यह काम करता है क्योंकि !=CoffeeScripts Existential Operator(प्रश्न चिह्न) द्वारा इस्तेमाल किया undefinedजा करने के लिए बराबर है null।
ps क्या आप वास्तव if (MyVariable?false){ ... }में काम कर सकते हैं ? यह मेरे लिए तब तक संकलित नहीं होता जब तक कि अस्तित्व के संचालक और झूठे के बीच कोई स्थान न हो, MyVariable? falseजो तब कॉफीस्क्रिप्ट को एक फ़ंक्शन की तरह जाँचता है, क्योंकि falseयह सोचता है कि यह आपके लिए एक पैरामीटर है MyVariable, उदाहरण के लिए :
if MyVariable? false
alert "Would have attempted to call MyVariable as a function"
else
alert "but didn't call MyVariable as it wasn't a function"
पैदा करता है:
if (typeof MyVariable === "function" ? MyVariable(false) : void 0) {
alert("Would have attempted to call MyVariable as a function");
} else {
alert("but didn't call MyVariable as it wasn't a function");
}