जवाबों:
प्रयत्न:
text: text ? text : "default text"
"undefined"
किसी संदर्भ का केवल एक स्ट्रिंग प्रतिनिधित्व है, जैसे कि None
, या NULL
अन्य भाषाओं में कुछ भी संदर्भित नहीं है ।
===
सख्त तुलना ऑपरेटर है, आप इस सूत्र को पढ़ना चाह सकते हैं: /programming/523643/difference-between-and-in-javascript
if (text) { text } else {"default text"}
सटीक होना। अपरिभाषित if (object)
होने पर असत्य का मूल्यांकन करता object
है। सी-स्टाइल के समान हैक यदि (पॉइंटर) जो गलत का मूल्यांकन करता है यदि पॉइंटर का मान 0 (NULL) है। यह ध्यान देने योग्य है कि text
किसी बटन की टेक्स्ट प्रॉपर्टी के लिए इस्तेमाल किया गया वेरिएबल बाहरी दायरे से लिया गया है। : यह साथ अधिक स्पष्ट हो जाएगा text: inText ? inText : "default text"
, याif(inText) { text } else {"default text"}
if (text is true) then {text = text} else {text = "default text"}
- क्या यह सही है?
if (text is true)
। मैं यह आसान के रूप में सोचने के लिए लगता है if (text *is*)
या if (text exists)
। एक और अच्छा स्रोत: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: text ? text : "default text"
}
यह जवाब मेरे लिए चेतावनी फेंकता है।
QML Button: Binding loop detected for property "text"
बदलने text
के लिए modelText
के बजाय एक त्रुटि फेंकता है।
ReferenceError: modelText is not defined
यह मेरे लिए जावास्क्रिप्ट निष्पादन को रोकता है; यानी अगली पंक्ति नहीं है।
एक ही ऐसा होता है जब इसे जावास्क्रिप्ट के माध्यम से सेट किया जाता है, लेकिन काफी क्रिया है।
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: "default text"
Component.onCompleted: {
if (modelText !== "undefined") {
myButton.text = modelText;
}
}
}
typeof
typeof
ऑपरेटर म्यूट त्रुटि और काम करता है के रूप में उम्मीद।
import QtQuick 2.3
import QtQuick.Controls 1.2
Button {
id: myButton
text: "default text"
Component.onCompleted: {
if (typeof modelText !== "undefined") {
myButton.text = modelText;
}
}
}
अपरिभाषित के साथ तुलना करने के लिए आप लिखते हैं text === undefined
। यह यदि text
है तो असत्य का मूल्यांकन करेगा null
।
यदि आप चाहते हैं कि मान मौजूद है (यानी, दोनों की जाँच करें ) undefined
और null
, यदि स्टेटमेंट या टर्नरी ऑपरेटर है तो इसका उपयोग करें। यदि आपको बूलियन मान के रूप में तुलना के परिणाम को संग्रहीत करने की आवश्यकता है, तो उपयोग करें var textPresent = !!text
(हालांकि !
कोड को पढ़ने के लिए डबल भ्रमित हो सकता है)।