আমি জাভাস্ক্রিপ্টে নাল মানগুলি কীভাবে পরীক্ষা করব?


573

আমি কীভাবে জাভাস্ক্রিপ্টে নাল মানগুলি পরীক্ষা করতে পারি? আমি নীচের কোডটি লিখেছি কিন্তু এটি কার্যকর হয়নি।

if (pass == null || cpass == null || email == null || cemail == null || user == null) {      

    alert("fill all columns");
    return false;  

}   

এবং আমি আমার জাভাস্ক্রিপ্ট প্রোগ্রামগুলিতে ত্রুটিগুলি কীভাবে খুঁজে পেতে পারি?


আপনি কি নিশ্চিত যে আপনি যে মানগুলি পরীক্ষা করছেন তা আসলে নাল এবং কেবল খালি স্ট্রিং নয়?
জানু-পিটার ভস

72
পরীক্ষা nullJS কঠোর অপারেটর সঙ্গে সম্পন্ন করতে হবে===
ডেভিন

3
@ ডেভিন - সত্য, তবে এখানে সমস্যা নেই কারণ এটি যদি বিবৃতিটি তখনও কাজ করে।
মার্ক ক্যান

3
@ কলোভস, যদি আমি ভাবতাম যে সমস্যাটিই আমি এই মন্তব্যটি একটি উত্তর করে ফেলতাম। আমার কথাটি দেখুন, আমি ওপির অনুশীলনের প্রসঙ্গে ভাষা সম্পর্কে স্পষ্টভাবে একটি সাধারণ বক্তব্য দিচ্ছি, এবং প্রস্তাব দিচ্ছি না যে এটি তার সমস্যার সমাধান করে।
ডেভিন

2
@ টিআরআইজি প্রস্তাবিত পরিবর্তনগুলি মৌলিকভাবে প্রশ্নের প্রকৃতিটিকে এমন বিন্দুতে পরিবর্তিত করে যেখানে উত্তরগুলি (কেবল আমার নয়) প্রসঙ্গটি হারাতে এবং অর্থবোধ করে না। সম্পাদনাটি একটি মন্তব্য হওয়া উচিত।
ic3b3rg

উত্তর:


741

জাভাস্ক্রিপ্ট "নাল" মান পরীক্ষা করার ক্ষেত্রে অনেক নমনীয়। আমি অনুমান করছি আপনি আসলে খালি স্ট্রিংগুলি সন্ধান করছেন, সেক্ষেত্রে এই সহজ কোডটি কাজ করবে:

if(!pass || !cpass || !email || !cemail || !user){

কোনটি খালি স্ট্রিং (জন্য চেক করবে ""), null, undefined, falseএবং সংখ্যার 0এবংNaN

দয়া করে মনে রাখবেন এটা মিস করার জন্য একটি সাধারণ ভুল হলে আপনি নির্দিষ্টভাবে সংখ্যার জন্য যাচাই করছি 0এই পদ্ধতি সঙ্গে, এবং num !== 0পছন্দ করা হয় (অথবা num !== -1অথবা ~num(হল hacky কোড যে বিরুদ্ধে চেক -1)) কাজকর্মের জন্য যে ফিরতি -1যেমন indexOf)


4
এই পরীক্ষার কোন অংশটি কোন মানগুলির জন্য তা জানা খুব দরকারী। কখনও কখনও আপনি বিশেষভাবে একটি খুঁজছেন।
অজৈব

2
কিছুটা দেরিতে বিবৃতি দেওয়া, তবে হ্যাঁ, আপনি প্রতিটি @inorganik এর বিরুদ্ধে পরীক্ষা করতে পারেন, নীচে আমার উত্তরটি দেখুন
ওয়েবওয়ান্ডারার

28
পাঠকগণ, সংখ্যার ডেটাতে এই ধরণের পরীক্ষার সময় সতর্ক থাকুন। ব্যবহার করবেন না !বা !!জন্য পরীক্ষা nullবা undefinedসাধারণত-সাংখ্যিক ডেটা যদি না আপনার কাছে দূরে এর 0. মান রাখার বিষয়ে
Nicks

4
উত্তর নিজেই এটি বলে: "... এবং সংখ্যা 0..."। আমি বিশ্বাস করি যে এই প্রসঙ্গে প্রসঙ্গটি দেওয়া হয়েছে (যা আমি "ব্যবহারকারী নাম, পাসওয়ার্ড, ইমেল" অনুমান করছি), তারা 0মানগুলি পরীক্ষা করছে না given এই প্রশ্ন ও উত্তরের জনপ্রিয়তা দেওয়া সত্ত্বেও, আমি সম্মত হই যে এটি উত্তরে নিজেই উল্লেখ করার মতো।
মার্ক কান

4
@ হেন্ডেকা - চোখ রোলস প্রকৃত প্রশ্নে কোডটি পড়ুন। এটি পরিষ্কারভাবে ব্যবহারকারীর নাম এবং পাসওয়ার্ড সম্পর্কে জিজ্ঞাসা করছে। আমি কিছুতেই অনুমান করছি না, আমি কেবল নম্র হয়ে যাচ্ছিলাম। আপনি এই বিষয়টির দ্বারা বিরক্ত হয়ে গেছেন যে আমি তাদের যা প্রয়োজন তার জবাব দিয়েছি এবং তারা যা চেয়েছিল তা নয়, যা অযৌক্তিক। এটি তাই, বেশিরভাগ সময় লোকেরা জানে না যে তাদের কী চাওয়া উচিত। মূল প্রশ্নের প্রসঙ্গে এই উত্তরটি সঠিক। এখন শব্দ যোগ করা বন্ধ করুন।
মার্ক কাহন

418

স্পষ্টভাবে নাল পরীক্ষা করার জন্য আপনি এটি ব্যবহার করবেন:

if (variable === null)

এই পরীক্ষাটি হবে শুধুমাত্র জন্য পাস nullএবং জন্য পাস করা হবে না "", undefined, false, 0, অথবা NaN

অধিকন্তু, আমি প্রতিটি "ভুয়া-সদৃশ" মানের জন্য নিখুঁত চেক সরবরাহ করেছি (যার জন্য এটি সত্য হবে !variable)।

দ্রষ্টব্য, কিছু পরম চেকগুলির জন্য, আপনাকে absolutely equals: ===এবং এর ব্যবহার প্রয়োগ করতে হবে typeof

স্বতন্ত্র পরীক্ষার কাজগুলি দেখানোর জন্য আমি এখানে একটি জেএসফিডেল তৈরি করেছি

প্রতিটি পরীক্ষার ফলাফল এখানে:

Null Test:

if (variable === null)

- variable = ""; (false) typeof variable = string

- variable = null; (true) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



Empty String Test:

if (variable === '')

- variable = ''; (true) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number




Undefined Test:

if (typeof variable == "undefined")

-- or --

if (variable === undefined)

- variable = ''; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (true) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



False Test:

if (variable === false)

- variable = ''; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (true) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (false) typeof variable = number



Zero Test:

if (variable === 0)

- variable = ''; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (true) typeof variable = number

- variable = NaN; (false) typeof variable = number



NaN Test:

if (typeof variable == 'number' && !parseFloat(variable) && variable !== 0)

-- or --

if (isNaN(variable))

- variable = ''; (false) typeof variable = string

- variable = null; (false) typeof variable = object

- variable = undefined; (false) typeof variable = undefined

- variable = false; (false) typeof variable = boolean

- variable = 0; (false) typeof variable = number

- variable = NaN; (true) typeof variable = number

আপনি দেখতে পাচ্ছেন, এর বিরুদ্ধে পরীক্ষা করা কিছুটা বেশি কঠিন NaN;


9
আপনি যদি ===কঠোর সাম্য ব্যবহার করেন তবে টাইপ চেক করার উদ্দেশ্য কী ? ধন্যবাদ। এছাড়াও NaN পরীক্ষার জন্য আপনি ব্যবহার করতে পারেন isNaN(value)যা trueভেরিয়েবল NaN এর সমান হলেই ফিরে আসবে ।
মাইকেল ম্যালিনভস্কিজ

16
এমন কোনও মামলা রয়েছে যেখানে variable === null"অবজেক্ট" টাইপ করা হয়নি? যদি তা না থাকে, তবে চেকটি সরল variable === nullকরে দ্বিতীয় সংযোজনটি কেন করা হচ্ছে না ? ধন্যবাদ।
হুনান রোস্তোমায়ান

7
@ হুনানরোস্টোমায়ান ভাল প্রশ্ন, এবং সত্যই, না, আমি মনে করি না যে আছে। variable === nullআমি সম্ভবত এই জেএসফিডেলে এখানে যা পরীক্ষা করেছি ব্যবহার করে আপনি সম্ভবত যথেষ্ট নিরাপদ । আমি `&& টাইপফুল ভেরিয়েবল === 'অবজেক্ট'` ব্যবহার করার কারণটি কেবলমাত্র একটি nullমান একটি টাইপফুলের আকর্ষণীয় সত্যটিই ব্যাখ্যা করার objectজন্য নয়, অন্য চেকগুলির প্রবাহকে বজায় রাখতেও ছিল । তবে হ্যাঁ, উপসংহারে, আপনি সহজভাবে ব্যবহার করা নিরাপদ variable === null
ওয়েবওয়ান্ডারার

1
jsfiddle.net/neoaptt/avt1cgem/1 এখানে এই উত্তরটি ফাংশনগুলিতে বিভক্ত করা হয়েছে। খুব দরকারী না, তবে আমি যাইহোক এটি করেছি।
নিওপট্ট

1
আমি এমন কিছু করতে যাচ্ছি যা কখনই একটি ভাল ধারণা নয়: এই উত্তরে কোডটি পরিবর্তন করুন। বিশেষত, নাল পরীক্ষা করার সময় টাইপ অবজেক্টের জন্য সম্পূর্ণ অপ্রয়োজনীয় পরীক্ষাটি সরিয়ে ফেলুন। এটি একটি মৌলিক কোড স্নিপেট: এমনকি কোনও এক শিক্ষানবিসকে ভুল-শিখতে হবে তা তাদের ধারণা নয় যে তাদের সেই ভার্বোজ পরীক্ষা করা দরকার।
টুলমেকারস্টেভ

59

শুধু প্রতিস্থাপন ==সঙ্গে ===সব জায়গায় হবে।

== একটি আলগা বা বিমূর্ত সাম্যের তুলনা

=== একটি কঠোর সমতা তুলনা

আরও তথ্যের জন্য সমতা তুলনা এবং সমতা বিষয়ে MDN নিবন্ধটি দেখুন ।


2
এটি কেবলমাত্র যদি আপনি বিবেচনা কাজ করে undefinedনা হতে null। অন্যথায় এটি অনেক অপ্রত্যাশিত আচরণের দিকে পরিচালিত করবে। সাধারণত যদি আপনি উভয় null/ undefinedতবে মিথ্যা মানগুলিতে আগ্রহী না হন তবে ব্যবহার করুন ==(আপনার যখন এমন কিছু করা উচিত তখন কয়েকটি ক্ষেত্রে একটি)।
অ্যান্ড্রু মাও

2
@AndrewMao undefined নয় null : stackoverflow.com/a/5076962/753237
ic3b3rg

2
আমি বিশ্বাস করি @ অ্যান্ড্রুমাও যা বলেছিলেন তা সত্যই। তাঁর প্রথম বাক্যটি আবারও লেখা যেতে পারে "এটি কেবল এমন পরিস্থিতিতে কাজ করে যেখানে অপরিজ্ঞাত এবং নাল ব্যবহারিক সমতুল্য নয়" "
ববরোডস

1
@ বিবিআরডস আমার খারাপ লেখার ব্যাখ্যা দেওয়ার জন্য ধন্যবাদ, আমি এটির প্রশংসা করি :)
অ্যান্ড্রু মাও

@ অ্যান্ড্রুমাও আপনাকে স্বাগতম! এবং আমি আপনার লেখাকে ব্যক্তিগতভাবে দরিদ্র বলব না; আমি বলব এটি গড়ের চেয়ে ভাল চুক্তি। :)
ববরোডস

30

কঠোর সমতা অপারেটর: -

আমরা নাল দ্বারা পরীক্ষা করতে পারেন ===

if ( value === null ){

}

শুধু ব্যবহার করে if

if( value ) {

}

মানটি যদি সত্য না হয় তবে তা মূল্যায়ন করবে :

  • খালি
  • অনির্দিষ্ট
  • NaN
  • খালি স্ট্রিং ("")
  • মিথ্যা
  • 0

9

nullসরলিকৃত বাক্য গঠন সহ সুস্পষ্টভাবে পরীক্ষা করে গৃহীত উত্তরের উপর উন্নতি :

if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
    // your code here ...
}

// Test
let pass=1, cpass=1, email=1, cemail=1, user=1; // just to test

if ([pass, cpass, email, cemail, user].every(x=>x!==null)) {
    // your code here ...
    console.log ("Yayy! None of them are null");
} else {
    console.log ("Oops! At-lease one of them is null");
}


6

প্রথমত, আপনার কোনও ফাংশন বডি ছাড়াই একটি রিটার্ন স্টেটমেন্ট রয়েছে। সম্ভাবনা হ'ল এটি ত্রুটি ছুঁড়ে দেবে।

আপনার চেক করার একটি পরিষ্কার উপায় হ'ল সহজভাবে ব্যবহার করা! অপারেটর:

if (!pass || !cpass || !email || !cemail || !user) {

    alert("fill all columns");

}

12
এই কোডটি সম্ভবত কোনও ফাংশনে রয়েছে, তিনি কেবল এটি প্রদর্শন করেননি;)
মার্ক কাহন

4

আপনি অবশেষে ধরা চেষ্টা ব্যবহার করতে পারেন

 try {
     document.getElementById("mydiv").innerHTML = 'Success' //assuming "mydiv" is undefined
 } catch (e) {

     if (e.name.toString() == "TypeError") //evals to true in this case
     //do something

 } finally {}   

আপনি throwনিজের ত্রুটিগুলিও করতে পারেন । এই দেখুন ।


1
আমি মনে করি এটি 'ভৌতিক' কোড হিসাবে যোগ্যতা অর্জন করেছে। আপনি যদি সত্যই এরকম কিছু লিখে থাকেন তবে এটি এমন একটি বোঝার সাথে থাকবে যে "মাইডিভ" সম্ভবত বিদ্যমান থাকতে পারে না। আমাদের ক্ষেত্রে এই কোডটি পৌঁছানো উচিত না যদি না আমরা নিশ্চিত যে এটির ক্ষেত্রে, এবং আমাদের কাছে প্রতিক্রিয়ার কোডের মতো প্রচুর উপায় রয়েছে যাতে আমরা নিশ্চিত হয়ে যায় যে আমরা এই জাতীয় কোনও লাইনের চেষ্টা করার আগেই আত্মবিশ্বাসী।
calql8edkos

নিয়ন্ত্রণ প্রবাহের জন্য ট্রাই এবং ক্যাচ ব্যবহার করবেন না। এটি একটি ভাল সমাধান নয়।
অ্যান্ড্রু এস

4

জাভাস্ক্রিপ্টে, কোনও স্ট্রিং সমান নয় null

একটি ফাঁকা স্ট্রিং pass == nullকখন হতে পারে আপনি সম্ভবত সত্য বলে প্রত্যাশা করেছেন passকারণ আপনি জানেন যে আলগা সমতা অপারেটর ==নির্দিষ্ট ধরণের ধরণের জোর করে।

উদাহরণস্বরূপ, এই অভিব্যক্তিটি সত্য:

'' == 0

বিপরীতে, কঠোর সাম্য অপারেটর ===বলে যে এটি মিথ্যা:

'' === 0

এটি দেওয়া ''এবং 0আলগাভাবে সমান, আপনি যুক্তিসঙ্গতভাবে অনুমান করতে পারেন ''এবং nullআলগাভাবে সমান। তবে, তারা না।

এই অভিব্যক্তিটি মিথ্যা:

'' == null

যে কোনও স্ট্রিংকে তুলনা করার ফলাফলটি nullমিথ্যা। সুতরাং, pass == nullএবং আপনার অন্যান্য সমস্ত পরীক্ষা সর্বদা মিথ্যা এবং ব্যবহারকারী কখনই সতর্কতা পায় না।

আপনার কোড ঠিক করতে, প্রতিটি মানকে খালি স্ট্রিংয়ের সাথে তুলনা করুন:

pass === ''

যদি আপনি নিশ্চিত হন যে passএটি একটি স্ট্রিং, pass == ''তবে এটিও কাজ করবে কারণ কেবল একটি খালি স্ট্রিং খালি স্ট্রিংয়ের সাথে আলগাভাবে সমান। অন্যদিকে, কিছু বিশেষজ্ঞরা বলেছেন যে জাভাস্ক্রিপ্টে সর্বদা কঠোর সাম্যতা ব্যবহার করা ভাল অভ্যাস, যদি না আপনি specificallyিলে .ালা সমতা অপারেটর সম্পাদন করেন এমন ধরণের চাপ প্রয়োগ করতে চান।

আপনি যদি জানতে চান কোন দুটি মানের মানগুলি আলগাভাবে সমান হয় তবে এই বিষয়ে মোজিলা নিবন্ধে "সমতাের তুলনা" সারণীটি দেখুন ।


4

জাভাস্ক্রিপ্টে অপরিজ্ঞাত এবং নাল পরীক্ষা করার জন্য আপনার কেবল নিম্নলিখিত লিখতে হবে:

if (!var) {
        console.log("var IS null or undefined");
} else {
        console.log("var is NOT null or undefined");
}

6
! var 0, "", NaN, এবং মিথ্যা দিয়েও সত্য।
ম্যাট

3

এটি এনএএন পরীক্ষা করার বিষয়ে ওয়েবওয়ান্ডারারের সমাধান সম্পর্কে একটি মন্তব্য (আমার কাছে এখনও আনুষ্ঠানিক মন্তব্য দেওয়ার মতো যথেষ্ট প্রতিনিধিত্ব নেই)। সমাধান হিসাবে পড়া

if(!parseInt(variable) && variable != 0 && typeof variable === "number")

কিন্তু এই মূলদ সংখ্যার যা সুসম্পন্ন করবে ব্যর্থ হবে 0, যেমন variable = 0.1। আরও ভাল পরীক্ষা হবে:

if(isNaN(variable) && typeof variable === "number")

1
গ্যাব্রিয়েল বাগটি চিহ্নিত করার জন্য ধন্যবাদ, আমি আমার উত্তরটি ঠিক করে রেখেছি। যে ছাড়াও, আমি পরিবর্তন করে পরীক্ষা ঠিক করতে সক্ষম হন parseIntথেকে parseFloat (প্রথম স্থানে আমাকে সুস্পষ্ট হওয়া উচিত ছিল যা)। আমি isNanফাংশনটি ব্যবহার করা এড়িয়ে গেলাম কারণ আমি মনে করি যে অনেক বিকাশকারী isNaNকোনও ধরণের "ম্যাজিক বক্স" এর মতো ফাংশনগুলি দেখে যা মানগুলি প্রবেশ করে এবং বুলিয়ানগুলি বেরিয়ে আসে এবং আমি আরও কিছুটা গভীরতার সাথে পরীক্ষা করতে চাই। তবে হ্যাঁ, আপনার প্রস্তাবিত পরীক্ষাটি কার্যকর হবে এবং এটি ব্যবহারের জন্য পুরোপুরি সূক্ষ্ম। দুঃখিত আমি এখনও অবধি আপনার পোস্ট লক্ষ্য করিনি।
ওয়েবওয়ান্ডারার

1
দুর্দান্ত, মনে হচ্ছে এটি কাজ করে। কেন আপনি isNaNপাশাপাশি এড়ানো হয়েছে সে সম্পর্কে মন্তব্যের জন্য ধন্যবাদ , আমি সেই যুক্তিটির পিছনে পেতে পারি। অ্যান্ডসকোর.জেএস পদ্ধতিটিও রয়েছে, যা আরও বিভ্রান্তিকর / ব্ল্যাকবক্স বলে মনে হচ্ছে, তবে যাইহোক এটি লক্ষ করার মতো কারণ এটির সুবিধা নেয় NaN !== NaNObject.prototype.toString.call(variable) === '[object Number]' && variable !== +variable
গ্যাব্রিয়েল

2

আসলে আমি মনে করি আপনার ব্যবহারের প্রয়োজন হতে পারে if (value !== null || value !== undefined) কারণ আপনি যদি ব্যবহার করেন তবে if (value)0 বা মিথ্যা মানগুলিও ফিল্টার করতে পারে।

এই দুটি ফাংশন বিবেচনা করুন:

const firstTest = value => {
    if (value) {
        console.log('passed');
    } else {
        console.log('failed');
    }
}
const secondTest = value => {
    if (value !== null && value !== undefined) {
        console.log('passed');
    } else {
        console.log('failed');
    }
}

firstTest(0);            // result: failed
secondTest(0);           // result: passed

firstTest(false);        // result: failed
secondTest(false);       // result: passed

firstTest('');           // result: failed
secondTest('');          // result: passed

firstTest(null);         // result: failed
secondTest(null);        // result: failed

firstTest(undefined);    // result: failed
secondTest(undefined);   // result: failed

আমার অবস্থায়, আমি শুধু যদি মান নাল কিনা চেক করতে প্রয়োজন এবং undefined এবং আমি ফিল্টার করতে চান না 0বা falseবা ''মান। সুতরাং আমি দ্বিতীয় পরীক্ষাটি ব্যবহার করেছি, তবে আপনাকে সেগুলিও ফিল্টার করতে হতে পারে যা আপনাকে প্রথম পরীক্ষাটি ব্যবহার করার কারণ হতে পারে।


1

মানটি শূন্য হলে পরীক্ষার জন্য আমি আরও একটি উপায় খুঁজে পেয়েছি:

if(variable >= 0 && typeof variable === "object")

nullএকটি হিসাবে কাজ করে numberএবং objectএকই সময়ে। তুলনা null >= 0বা null <= 0ফলাফল true। তুলনা null === 0বা null > 0বা null < 0ফলস্বরূপ মিথ্যা হবে। তবে nullএটি একটি বস্তু হিসাবে আমরা এটি নাল হিসাবে সনাক্ত করতে পারি।

আমি আরো জটিল ফাংশন তৈরি natureof জাদুকরী typeof থেকেও উত্তম করব এবং কি ধরনের অন্তর্ভুক্ত করা বা গোষ্ঠীবদ্ধ থাকুন বলা যেতে পারে

/* function natureof(variable, [included types])
included types are 
    null - null will result in "undefined" or if included, will result in "null"
    NaN - NaN will result in "undefined" or if included, will result in "NaN"
    -infinity - will separate negative -Inifity from "Infinity"
    number - will split number into "int" or "double"
    array - will separate "array" from "object"
    empty - empty "string" will result in "empty" or
    empty=undefined - empty "string" will result in "undefined"
*/
function natureof(v, ...types){
/*null*/            if(v === null) return types.includes('null') ? "null" : "undefined";
/*NaN*/             if(typeof v == "number") return (isNaN(v)) ? types.includes('NaN') ? "NaN" : "undefined" : 
/*-infinity*/       (v+1 === v) ? (types.includes('-infinity') && v === Number.NEGATIVE_INFINITY) ? "-infinity" : "infinity" : 
/*number*/          (types.includes('number')) ? (Number.isInteger(v)) ? "int" : "double" : "number";
/*array*/           if(typeof v == "object") return (types.includes('array') && Array.isArray(v)) ? "array" : "object";
/*empty*/           if(typeof v == "string") return (v == "") ? types.includes('empty') ? "empty" : 
/*empty=undefined*/ types.includes('empty=undefined') ? "undefined" : "string" : "string";
                    else return typeof v
}

// DEMO
let types = [null, "", "string", undefined, NaN, Infinity, -Infinity, false, "false", true, "true", 0, 1, -1, 0.1, "test", {var:1}, [1,2], {0: 1, 1: 2, length: 2}]

for(i in types){
console.log("natureof ", types[i], " = ", natureof(types[i], "null", "NaN", "-infinity", "number", "array", "empty=undefined")) 
}


1

আমি এই খুব সাধারণ ফাংশনটি তৈরি করেছি যা আশ্চর্য কাজ করে:

function safeOrZero(route) {
  try {
    Function(`return (${route})`)();
  } catch (error) {
    return 0;
  }
  return Function(`return (${route})`)();
}

রুটটি মূল্যবোধের যে কোনও শৃঙ্খলটি ফুটিয়ে তুলতে পারে। আমি এটি jQuery / চেরিও এবং অবজেক্টস এবং এ জাতীয় জন্য ব্যবহার করি।

উদাহরণ 1: একটি সরল অবজেক্ট যেমন const testObj = {items: [{ val: 'haya' }, { val: null }, { val: 'hum!' }];};

তবে এটি একটি খুব বড় অবজেক্ট হতে পারে যা আমরা এমনকি তৈরি করি নি। সুতরাং আমি এটি মাধ্যমে পাস:

let value1 = testobj.items[2].val;  // "hum!"
let value2 = testobj.items[3].val;  // Uncaught TypeError: Cannot read property 'val' of undefined

let svalue1 = safeOrZero(`testobj.items[2].val`)  // "hum!"
let svalue2 = safeOrZero(`testobj.items[3].val`)  // 0

অবশ্যই আপনি যদি পছন্দ করেন তবে আপনি ব্যবহার করতে পারেন nullবা 'No value'... আপনার প্রয়োজন অনুসারে যাই হোক না কেন।

সাধারণত একটি ডিওএম ক্যোয়ারী বা একটি jQuery নির্বাচনকারী এটি না পাওয়া গেলে একটি ত্রুটি ফেলে দিতে পারে। তবে এর মতো কিছু ব্যবহার করে:

const bookLink = safeOrZero($('span.guidebook > a')[0].href);
if(bookLink){
  [...]
}

1

আপনি লড্যাশ মডিউলটি মূল্য নাল বা সংজ্ঞায়িত তা পরীক্ষা করতে ব্যবহার করতে পারেন

_.isNil(value)
Example 

 country= "Abc"
    _.isNil(country)
    //false

   state= null
    _.isNil(state)
    //true

city= undefined
    _.isNil(state)
    //true

   pin= true
    _.isNil(pin)
    // false   

রেফারেন্স লিংক: https://lodash.com/docs/#isNil


0

এটির জন্য বুলিয়ান মানগুলি প্রাক্তন ডিবি থেকে আসার ক্ষেত্রে কাজ করবে না:

 value = false

 if(!value) {
   // it will change all false values to not available
   return "not available"
 }

0

জাভাস্ক্রিপ্টে আফাইক যখন কোনও ভেরিয়েবল ঘোষণা করা হয় তবে মান নির্ধারিত না করা হয়, এর ধরণটি undefined। তাই আমরা পরিবর্তনশীল পরীক্ষা করতে পারবেন এমনকি যদি এটি একটি হবে objectকিছু অধিষ্ঠিত উদাহরণস্বরূপ স্থানে মান

শূন্যতা যাচাই করার জন্য একটি সহায়ক পদ্ধতি তৈরি করুন যা trueএটি আপনার API এ ফিরে আসে এবং ব্যবহার করে।

ভেরিয়েবলটি খালি আছে কিনা তা পরীক্ষা করতে সহায়ক ফাংশন:

function isEmpty(item){
    if(item){
        return false;
    }else{
        return true;
    }
}

ব্যতিক্রমী এপিআই কলটি ধরুন:

try {

    var pass, cpass, email, cemail, user; // only declared but contains nothing.

    // parametrs checking
    if(isEmpty(pass) || isEmpty(cpass) || isEmpty(email) || isEmpty(cemail) || isEmpty(user)){
        console.log("One or More of these parameter contains no vlaue. [pass] and-or [cpass] and-or [email] and-or [cemail] and-or [user]");
    }else{
        // do stuff
    }

} catch (e) {
    if (e instanceof ReferenceError) {
        console.log(e.message); // debugging purpose
        return true;
    } else {
        console.log(e.message); // debugging purpose
        return true;
    }
}

কিছু পরীক্ষার কেস:

var item = ""; // isEmpty? true
var item = " "; // isEmpty? false
var item; // isEmpty? true
var item = 0; // isEmpty? true
var item = 1; // isEmpty? false
var item = "AAAAA"; // isEmpty? false
var item = NaN; // isEmpty? true
var item = null; // isEmpty? true
var item = undefined; // isEmpty? true

console.log("isEmpty? "+isEmpty(item));

1
কি? এই উত্তরটির এই পোস্টের সাথে কোনও সম্পর্ক নেই। আপনি কি এই উত্তরটি দুর্ঘটনায় এই থ্রেডে পোস্ট করেছেন?
ওয়েবওয়ান্ডারার

এই isEmptyফাংশন ঠিক মত আচরণ করে !। কোনও ফাংশন উদ্ভাবনের দরকার নেই। শুধু কর if (!pass || !cpass || !email ...)। (যা ইতিমধ্যে স্বীকৃত উত্তরে প্রদর্শিত হয়েছে)) এবং ওয়েবওয়ান্ডারারের মন্তব্যে, এই পোস্টের মাঝের অংশটি "ট্রাই-ক্যাচ ব্যতিক্রমী এপিআই কল" এই প্রশ্নের সাথে প্রাসঙ্গিক বলে মনে হয় না। দয়া করে আপনার অভিপ্রায়টি ব্যাখ্যা করুন - এটি কখন কার্যকর? এটি কীভাবে প্রশ্নের সাথে সম্পর্কিত?
টুলমেকারস্টেভ

0

ত্রুটির শর্তাদি পরীক্ষা করা হচ্ছে:

// Typical API response data
let data = {
  status: true,
  user: [],
  total: 0,
  activity: {sports: 1}
}

// A flag that checks whether all conditions were met or not
var passed = true;

// Boolean check
if (data['status'] === undefined || data['status'] == false){
  console.log("Undefined / no `status` data");
  passed = false;
}

// Array/dict check
if (data['user'] === undefined || !data['user'].length){
  console.log("Undefined / no `user` data");
  passed = false;
}

// Checking a key in a dictionary
if (data['activity'] === undefined || data['activity']['time'] === undefined){
   console.log("Undefined / no `time` data");
   passed = false;
}

// Other values check
if (data['total'] === undefined || !data['total']){
  console.log("Undefined / no `total` data");
  passed = false;
}

// Passed all tests?
if (passed){
  console.log("Passed all tests");
}

-1

এটা চেষ্টা কর:

if (!variable && typeof variable === "object") {
    // variable is null
}

নাল হ'ল "মিথ্যা" এবং টাইপফোন "অবজেক্ট" দেয় returns
ব্যবহারকারী 5520516

2
এর চেয়ে ভাল কীভাবে if (variable === null)? এছাড়াও ইতিমধ্যে কেউ গত বছর ইতিমধ্যে উত্তরটি সরবরাহ করেছেন: stackoverflow.com/a/27550756/218196
ফেলিক্স ক্লিং
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.