কীভাবে jQuery এর 'অপরিজ্ঞাত' মান পরীক্ষা করতে হয়


172

সম্ভাব্য সদৃশ:
জাভাস্ক্রিপ্ট জাভাস্ক্রিপ্ট অনির্ধারিত তুলনা একটি অপরিজ্ঞাত অবজেক্ট সম্পত্তি সনাক্ত করা

আমরা কীভাবে একটি অপরিজ্ঞাত ভেরিয়েবলের জন্য একটি চেক যুক্ত করতে পারি, যেমন:

function A(val) {
  if (val == undefined) 
    // do this
  else
    // do this
}

উত্তর:


379

কিছু জাভাস্ক্রিপ্ট কার্যকারিতা সরলীকরণ এবং একীকরণের জন্য জিকুয়ের লাইব্রেরিটি বিশেষত বিকাশ করা হয়েছিল।

তবে যদি undefinedমানটির পরিবর্তে আপনার কোনও ভেরিয়েবল পরীক্ষা করতে হয় তবে জাভা স্ক্রিপ্টটিতে একটি typeofঅপারেটর রয়েছে, এটি সাধারণ, দ্রুত এবং ক্রস-প্ল্যাটফর্ম: যে কোনও বিশেষ পদ্ধতি উদ্ভাবনের দরকার নেই :

if (typeof value === "undefined") {
    // ...
}

এটি একটি স্ট্রিং প্রদান করে যা ভেরিয়েবল বা অন্যান্য অব্যবহৃত অপারেন্ডের ধরণকে নির্দেশ করে। তুলনায় এই পদ্ধতির প্রধান সুবিধা if (value === undefined) { ... }হ'ল typeofভেরিয়েবলের valueঅস্তিত্ব না থাকলে ক্ষেত্রে কখনই ব্যতিক্রম বাড়াতে পারে না।


12
@nahum jQuery একটি জাভাস্ক্রিপ্ট লাইব্রেরি। এটি কোনও আলাদা প্রোগ্রামিং ভাষা নয়।
ভিজিওন

9
LOL ওমগ আপনি সত্যিই এই মন্তব্য করছেন ?? আমি জানি একই মানুষ। তবে আমি অনুমান করি যে তিনি জানতে চান যে jQuery- এ is .আইসু সংজ্ঞায়িত (অবজেক্ট) এর মতো কোনও পদ্ধতি রয়েছে কিনা; এবং মানটি সত্য বা মিথ্যা ফিরিয়ে দিন। টাইপফ কোনও ফ্রেমওয়ার্ক ছাড়াই জাভাস্ক্রিপ্ট।
ncubica

আমার সমস্যাগুলির মধ্যে একটি ছিল: আপনি যদি এমন কিছু করে থাকেন তবে ("#myId")আপনার আসলে কী প্রয়োজন তা নিশ্চিত করুন: ক। typeof ("#myId")=== "undefined" খ। বা:typeof ("#myId").val() === "undefined"
আলবারিকি

3
@ অ্যালবারিসি ("#myId")একটি স্ট্রিং ধ্রুবক ছাড়া আর কিছুই নয় । এটি সর্বদা সংজ্ঞায়িত হবে এবং এক ধরণের থাকবে "string"। যদি আপনি বোঝাতে চান যে একটি আসল jQuery অবজেক্ট যার সাথে তৈরি হয়েছে $("#myId"), তবে এটি সর্বদা সংজ্ঞায়িত হবে "object"(যদি আপনি jQuery সঠিকভাবে লিঙ্ক করেছেন)। আইডি সহ একটি ডিওএম উপাদান উপস্থিতির সাথে myIdমূল্যায়ন করা যেতে পারে if ($("#myId").length > 0) { ... }, তবে এর মানটি খালি নয় কিনা তা পরীক্ষা করে করা যায় if ($("#myId").val()) { ... }। এই ধারাগুলির কোনটিই এই প্রশ্নের মূল বিষয়টির সাথে সম্পর্কিত নয়।
ভিজিওন

1
@ ব্যবহারকারী 3284463 উত্তরে উল্লিখিত হিসাবে, ভেরিয়েবলের অস্তিত্ব না থাকলে সহজ value === undefinedএকটি ব্যতিক্রম উত্থাপন করবে value। তাই বাস্তব জীবনে কী ব্যবহার করবেন তা সম্পূর্ণভাবে আপনার উপর নির্ভর করে।
ভিজিওন

26

এই ক্ষেত্রে আপনি একটি === undefinedতুলনা ব্যবহার করতে পারেন :if(val === undefined)

এটি কাজ করে কারণ valসর্বদা বিদ্যমান (এটি একটি ফাংশন যুক্তি)।

আপনি একটি অবাধ পরিবর্তনশীল যে যুক্তি নয় পরীক্ষা করতে চেয়েছিলেন, তাহলে অর্থাত এ সব সংজ্ঞায়িত করা যেতে পারে, আপনি ব্যবহার করতে হবে চাই if(typeof val === 'undefined')ক্ষেত্রে ব্যতিক্রম এড়াতে valঅস্তিত্ব ছিল না।


16

নোট করুন যে টাইপফুল সর্বদা একটি স্ট্রিং প্রদান করে এবং ভেরিয়েবলের অস্তিত্ব না থাকলে ত্রুটি উত্পন্ন করে না।

function A(val){
  if(typeof(val)  === "undefined") 
    //do this
  else
   //do this
}

1
স্ট্রিং তুলনার জন্য, আমি মনে করি এর ===পরিবর্তে আমাদের ব্যবহার করতে হবে==
শ্রীরাম

@ শ্রীরাম তারা দু'জনই তুলনা করছেন, ঠিক বিভিন্ন উপায়ে ... এটি ভাল কাজ করবে
আরজিবি

10

আমি জানি আমি ফাংশনটির উত্তর দিতে দেরি করেছি তবে এটি করার জন্য jquery এর একটি বিল্ড ফাংশন রয়েছে

if(jQuery.type(val) === "undefined"){
    //Some code goes here
}

একই জন্য jquery.type https://api.jquery.com/jQuery.type/ এর jquery API নথিটি দেখুন ।


3

আপনি শর্টহ্যান্ড প্রযুক্তিটি এটি অপরিজ্ঞাত বা নাল কিনা তা পরীক্ষা করতে ব্যবহার করতে পারেন

 function A(val)
 {
   if(val || "") 
   //do this
 else
 //do this
 }

আশা করি এটা তোমাকে সাহায্য করবে



1

যখন আমি " typeof obj === undefined" পরীক্ষা করছি , alert(typeof obj)ফিরতে হবে object, যদিও আপত্তিটি নির্ধারিত নয় । যেহেতু আপত্তি Objectএটির ফিরে আসার ধরন Object, তা নয় undefined

কয়েক ঘন্টা পরীক্ষার পরে আমি কৌশলটি নীচে বেছে নিয়েছি।

if(document.getElementById(obj) !== null){
//do...
}else{
//do...
}

আমি নিশ্চিত না কেন প্রথম কৌশলটি কাজ করে নি B তবে এটি ব্যবহার করে আমার কাজটি সম্পন্ন হবে।


0

আপনার যদি উপাদানটির নাম থাকে এবং আইডি না থাকে তবে আমরা নীচের মত সমস্ত পাঠ্য উপাদানগুলির উদাহরণস্বরূপ (উদাহরণস্বরূপ) অনির্ধারিত চেক অর্জন করতে পারি এবং সেগুলি 0.0 হিসাবে একটি ডিফল্ট মান দিয়ে পূরণ করতে পারি:

var aFieldsCannotBeNull=['ast_chkacc_bwr','ast_savacc_bwr'];
 jQuery.each(aFieldsCannotBeNull,function(nShowIndex,sShowKey) {
   var $_oField = jQuery("input[name='"+sShowKey+"']");
   if($_oField.val().trim().length === 0){
       $_oField.val('0.0')
    }
  })

0

আমি নিশ্চিত নই যে এটি সর্বোত্তম সমাধান, তবে এটি কার্যকর কাজ করে:

if($someObject['length']!=0){
    //do someting
}

0
function isValue(value, def, is_return) {
    if ( $.type(value) == 'null'
        || $.type(value) == 'undefined'
        || $.trim(value) == ''
        || ($.type(value) == 'number' && !$.isNumeric(value))
        || ($.type(value) == 'array' && value.length == 0)
        || ($.type(value) == 'object' && $.isEmptyObject(value)) ) {
        return ($.type(def) != 'undefined') ? def : false;
    } else {
        return ($.type(is_return) == 'boolean' && is_return === true ? value : true);
    }
}

এই সমস্ত ধরণের পরীক্ষক চেষ্টা করুন


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.