উত্তর:
আপনি typeofঅপরিশোধিত ভেরিয়েবলগুলিতে নিরাপদে অপারেটরটি ব্যবহার করতে পারেন ।
যদি এটি নাল সহ কোনও মান নির্ধারিত হয়ে থাকে তবে টাইপফ সংজ্ঞায়িত ব্যতীত অন্য কোনও কিছু ফিরিয়ে দেবে। টাইপফ সর্বদা একটি স্ট্রিং প্রদান করে।
অতএব
if (typeof maybeObject != "undefined") {
alert("GOT THERE");
}
এখানে অনেকগুলি অর্ধ-সত্য রয়েছে, তাই আমি ভেবেছিলাম যে আমি কিছু জিনিস পরিষ্কার করব।
আসলে কোনও ভেরিয়েবল উপস্থিত রয়েছে কিনা তা আপনি সঠিকভাবে বলতে পারবেন না (যদি না আপনি প্রতিটি দ্বিতীয় লাইনকে চেষ্টা-ধরার ব্লকে আবদ্ধ করতে চান)।
কারণটি হচ্ছে জাভাস্ক্রিপ্টটির এই কুখ্যাত মান রয়েছে undefinedযার উল্লেখযোগ্যভাবে অর্থ এই নয় যে চলকটি সংজ্ঞায়িত করা হয়নি, বা এটি বিদ্যমান নেই thatundefined !== not defined
var a;
alert(typeof a); // undefined (declared without a value)
alert(typeof b); // undefined (not declared)
সুতরাং বিদ্যমান একটি ভেরিয়েবল এবং অন্যটি যা আপনাকে টাইপটির প্রতিবেদন করতে পারে না undefined ।
@ কেভিনের ভুল ধারণা, null == undefined ,। এটি জবরদস্তি টাইপ করার কারণে, এবং ক্রকফোর্ড এই ধরণের জিনিস সম্পর্কে অনিশ্চিত সবাইকে ===সম্ভাব্য নকল মানগুলির জন্য পরীক্ষা করার জন্য কঠোর সমতা অপারেটরটি সর্বদা ব্যবহার করার জন্য বলে রাখার মূল কারণ । null !== undefinedআপনি আশা করতে পারেন কি আপনাকে দেয়। এছাড়াও দয়া করে মনে রাখবেন, যে foo != nullযদি একটি পরিবর্তনশীল কিনা চেক করতে একটি কার্যকর উপায় হতে পারে তন্ন তন্ন undefinedনাnull । অবশ্যই আপনি স্পষ্ট হতে পারেন, কারণ এটি পাঠযোগ্যতার জন্য সহায়তা করতে পারে।
যদি আপনি কোনও বিষয় উপস্থিত রয়েছে কিনা তা পরীক্ষা করতে যদি প্রশ্নটি সীমাবদ্ধ করে থাকেন, typeof o == "object" তবে আপনি যদি অ্যারে অবজেক্টগুলি বিবেচনা না করেন তবে ব্যতীত এটি একটি ভাল ধারণা হতে পারে, কারণ এটি আপনাকে objectকিছুটা বিভ্রান্ত করতে পারে বলেও জানানো হবে । এটি উল্লেখ না করা যা typeof nullআপনাকে দেয় objectযা কেবল ভুল।
আদিম যেখানে আপনি কি সত্যিই সম্পর্কে সতর্কতা অবলম্বন করা উচিত typeof, undefined, null, unknownএবং অন্যান্য misteries হোস্ট বস্তু। তাদের বিশ্বাস করা যায় না। তারা চাইলেই যে কোনও নোংরা কাজ করতে নির্দ্বিধায়। সুতরাং তাদের সাথে সাবধানতা অবলম্বন করুন, পারলে কার্যকারিতা পরীক্ষা করুন, কারণ এমন বৈশিষ্ট্যটি ব্যবহারের একমাত্র নিরাপদ উপায় যা এমনকি অস্তিত্বহীন।
foo!=nullএকটি ReferenceError উত্পাদন করা হবে যদি fooসংজ্ঞায়িত করা হয় না। সুতরাং, typeofআপনি ব্যতিক্রমটি ধরার পরিকল্পনা না করেই এটি ব্যবহার করা ভাল ।
undefined !== not defined&&foo != null can be an effective way to check if a variable is neither 'undefined' nor 'null' । আমি বলিনি != nullএটি উপস্থিত আছে কিনা তা যাচাই করার জন্য ভাল। আপনি এটিকে প্রসঙ্গের বাইরে নিয়ে যাচ্ছেন। (আমি আরও উল্লেখ করেছি যে এটি একটি
undefined। তারা একই নয়। (note) it can be used !== you should use। পড়ার সময় সাধারণ জ্ঞান ব্যবহার করুন। যখন ভেরিয়েবলটি ঘোষিত হয় (প্যারামিটারের তালিকা বা অন্য কোথাও) এবং আপনি এটির কোনও মূল্য পেয়েছে কিনা তা পরীক্ষা করতে চান, !=নাল পুরোপুরি নিরাপদ। ওপি যা চেয়েছিল তার চেয়ে এটি আলাদা ইউজকেস, সে কারণেই আমি এটিকে একটি নোট হিসাবে পরিচয় করিয়ে দিয়েছি। পুরো অনুচ্ছেদটি @ কেভিনের পোস্ট এবং টাইপ জোর বিটিডব্লিউ সম্পর্কে। আপনি মনোযোগ সহকারে পড়েন কিনা খেয়াল করতে পারেন হিসাবে।
!= nullআপনি কোনও ত্রুটির ঝুঁকি নিচ্ছেন না যখন আপনি জানেন যে ভেরিয়েবলটি ঘোষণা করা হয়েছে। এটি ফাংশন আর্গুমেন্টগুলি পরীক্ষা করার জন্য খুব দরকারী, বিবেচনা করুন:var hasValue = function(foo) {return foo != null}
দুটি উপায়.
আপনি টাইপফ ব্যবহার করে কোনও স্থানীয় অবজেক্টের জন্য পরীক্ষা করতে পারেন:
if (typeof object !== "undefined") {}
উইন্ডো অবজেক্টটি পর্যবেক্ষণ করে আপনি একটি বিশ্বব্যাপী অবজেক্টের (বৈশ্বিক স্কোপে সংজ্ঞায়িত একটি) পরীক্ষা করতে পারেন:
if (window.FormData) {}
যদি এটি কোনও বিশ্বব্যাপী অবজেক্ট হয় তবে আপনি এটি ব্যবহার করতে পারেন if (!window.maybeObject)
window.hasOwnProperty('maybeObject')আরও কিছুটা পাঠযোগ্য, যদি এটি কোনও বিশ্বব্যাপী অবজেক্ট হয়
আপনি "টাইপফ" ব্যবহার করতে পারেন।
if(typeof maybeObject != "undefined")
alert("GOT HERE");
থ্রেডটি বেশ কিছুদিন আগে খোলা হয়েছিল। আমি মনে করি ইতিমধ্যে কোনও টেরিনারি অপারেটরের ব্যবহার সবচেয়ে সহজ বিকল্প:
maybeObject ? console.log(maybeObject.id) : ""
var maybeObject = typeof maybeObject !== "undefined" ? Chart:false;কিনা তা পরীক্ষা করুন false।
আমি if(maybeObject)আমার জাভাস্ক্রিপ্টগুলিতে নাল চেক হিসাবে ব্যবহার করতাম।
if(maybeObject){
alert("GOT HERE");
}
সুতরাং শুধুমাত্র যদি maybeObject- একটি অবজেক্ট হয়, সতর্কতা প্রদর্শিত হবে। আমার সাইটে আমার একটি উদাহরণ রয়েছে।
https://sites.google.com/site/javaerrorsandsolutions/home/javascript-dynamic-checkboxes
maybeObject হয় 0, 0.0, or "", এটা অসত্য হিসাবে চেক
আমি উপরে থেকে কেবলমাত্র টাইপআর উদাহরণগুলি পরীক্ষা করেছি এবং কোনওটিই আমার পক্ষে কাজ করেনি, সুতরাং পরিবর্তে আমি এটি ব্যবহার করেছি:
btnAdd = document.getElementById("elementNotLoadedYet");
if (btnAdd) {
btnAdd.textContent = "Some text here";
} else {
alert("not detected!");
}
অবজেক্ট / ভেরিয়েবলের অস্তিত্ব যাচাই করা ছাড়াও আপনি একটি "সবচেয়ে খারাপ ক্ষেত্রে" আউটপুট সরবরাহ করতে পারেন বা কমপক্ষে একটি সতর্কতার মধ্যে ফাঁদে ফেলতে পারেন যাতে এটি নজরে না যায়।
ফাংশনের উদাহরণ যা পরীক্ষা করে, বিকল্প সরবরাহ করে এবং ত্রুটিগুলি ধরা দেয়।
function fillForm(obj) {
try {
var output;
output = (typeof obj !== 'undefined') ? obj : '';
return (output);
}
catch (err) {
// If an error was thrown, sent it as an alert
// to help with debugging any problems
alert(err.toString());
// If the obj doesn't exist or it's empty
// I want to fill the form with ""
return ('');
} // catch End
} // fillForm End
আমি এটিও তৈরি করেছি কারণ আমি যে অবজেক্টটিতে এটি পাঠাচ্ছি তা x, xm, xm [z] এবং টাইপফ xm [z] হতে পারে যদি xm উপস্থিত না থাকে তবে একটি ত্রুটিযুক্ত হয়ে যেতে পারে।
আমি আসা করি এটা সাহায্য করবে. (বিটিডাব্লু, আমি জেএসের সাথে নবজাতক)
যদি আপনি কেবল তার অস্তিত্ব সম্পর্কে চিন্তা করেন (এটি কি ঘোষণা করা হয়েছে?), অনুমোদিত উত্তরটি যথেষ্ট:
if (typeof maybeObject != "undefined") {
alert("GOT THERE");
}
যদি আপনি এটির প্রকৃত মান রাখার বিষয়ে চিন্তা করেন তবে আপনার যুক্ত করা উচিত:
if (typeof maybeObject != "undefined" && maybeObject != null ) {
alert("GOT THERE");
}
যেমন typeof( null ) == "object"
যেমন bar = { x: 1, y: 2, z: null}
typeof( bar.z ) == "object"
typeof( bar.not_present ) == "undefined"
এই ভাবে আপনি চেক করুন যে এটা ত্ত এর nullবা undefinedএবং যেহেতু typeofযদি মান প্লাস অস্তিত্ব নেই ত্রুটি না &&শর্ট সার্কিট, আপনি একটি রান-টাইম ভুল পান করব না।
ব্যক্তিগতভাবে, আমি কোথাও কোনও সহায়তা সহায়ক যুক্ত করার পরামর্শ দেব (এবং আসুন আমরা বিশ্বাস করি না typeof()):
function exists(data){
data !== null && data !== undefined
}
if( exists( maybeObject ) ){
alert("Got here!");
}
ডিভ অ্যালাইনমেন্ট ট্যাবড প্যানেল ব্যবহার করে পাঠ্যবক্স মানকে একটি ফ্রেমে ইনলাইন ফ্রেমে সেট করুন। সুতরাং সর্বোপরি, মান নির্ধারণের আগে আমাদের নির্বাচিত ট্যাবড প্যানেলগুলির ফ্রেম চেক করা দরকার যা নিম্নলিখিত কোডগুলি ব্যবহার করছে না:
জাভাস্ক্রিপ্ট কোড:
/////////////////////////////////////////
<script>
function set_TextID()
{
try
{
if(!parent.frames["entry"])
{
alert("Frame object not found");
}
else
{
var setText=document.getElementById("formx").value;
parent.frames["entry"].document.getElementById("form_id").value=setText;
}
if(!parent.frames["education"])
{
alert("Frame object not found");
}
else
{
var setText=document.getElementById("formx").value;
parent.frames["education"].document.getElementById("form_id").value=setText;
}
if(!parent.frames["contact"])
{
alert("Frame object not found");
}
else
{
var setText=document.getElementById("formx").value;
parent.frames["contact"].document.getElementById("form_id").value=setText;
}
}catch(exception){}
}
</script>
শূন্য এবং নাল অন্তর্নিহিত পয়েন্টার হয়। আপনি যদি গাণিতিক, তুলনা বা স্ক্রিনে '0' মুদ্রণ না করে থাকেন তবে আসলে এটি টাইপ করার দরকার নেই। এটি অন্তর্নিহিত। যেমন নিহিত টাইপফও একই কারণে প্রয়োজন হয় না। ঘড়ি.
যদি (আপত্তি) কনসোল.লগ ("বিদ্যমান");
আমি অনুরোধটি দেখতে পাইনি বা অন্যথায় এটির জন্য অন্তর্ভুক্ত নেই। আমি যতটা অতিরিক্ত বিষয়বস্তু পছন্দ করি যা প্রশ্নের সাথে খাপ খায় না। এটি সহজ রাখা যাক।
if (!maybeObject)- তবে প্রকৃতপক্ষে, শিরোনাম বিপরীতটি চেয়েছে।
অথবা, আপনি তার পরিবর্তে আমার একচেটিয়া বিদ্যমান () পদ্ধতিটি ব্যবহার করতে শুরু করতে পারেন এবং অসম্ভব হিসাবে বিবেচিত জিনিসগুলি করতে সক্ষম হতে পারেন। অর্থাৎ,
জিনিসগুলি: exists("blabla")বা এমনকি: exists("foreignObject.guessedProperty.guessNext.propertyNeeded")এটিও সম্ভব ...
!==তুলনা করার জন্য সত্যই করতে পারেন (হওয়া উচিত) ।