উত্তর:
চেষ্টা করুন:
text: text ? text : "default text"
"undefined"
কেবল একটি রেফারেন্সের একটি স্ট্রিং প্রতিনিধিত্ব যা কিছু উল্লেখ করে না, ঠিক যেমন None
বা NULL
অন্যান্য ভাষায়।
===
কঠোর তুলনা অপারেটর, আপনি এই থ্রেডটি পড়তে চাইতে পারেন: /programming/523643/differences-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)
। আর একটি ভাল উত্স: বিকাশকারী.মোজিলা.আর.ইন
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
তবে ব্যবহার করুন (যদিও !
কোডটি পড়ার ক্ষেত্রে দ্বিগুণ বিভ্রান্ত হতে পারে)।