Friday, July 3, 2020

Comparisons in javascript in hindi

हम गणित से कई तुलना ऑपरेटरों को जानते हैं।

Javascript में वे इस तरह लिखे जाते हैं:

  •     Greater/less: a> b, a <b।
  •     Greater/less या बराबर: a> = b, a <= b।
  •     Equals: a == b, कृपया दोहरे समानता चिन्ह पर ध्यान दें = समानता परीक्षण का अर्थ है, जबकि एक एकल = b का अर्थ है असाइनमेंट।
  •     Not equals गणित में अंकन ≠ है, लेकिन जावास्क्रिप्ट में इसे a =! B के रूप में लिखा गया है।
Comparisons in javascript in hindi
Comparisons in javascript in hindi


Result in boolean for javascript in Hindi


सभी तुलना operators एक boolean मान लौटाते हैं:

  •     true - का अर्थ है "हाँ", "true" या "सत्य"।
  •     false - का अर्थ है "नहीं", "false" या "सत्य नहीं"।

उदाहरण के लिए:

alert( 4 > 3 );  // true 
alert( 5 == 3 ); // false 
alert( 3 != 4 ); // true 

एक तुलना परिणाम को किसी भी मान की तरह एक चर में सौंपा जा सकता है:


let result = 5 > 4; // assign the result of the comparison
alert( result ); // true


String comparison in javascript in Hindi


यह देखने के लिए कि क्या एक string दूसरे से अधिक है, जावास्क्रिप्ट तथाकथित "dictionary" या "lexicographical" आदेश का उपयोग करता है।

दूसरे शब्दों में, तार की तुलना अक्षर-दर-अक्षर से की जाती है।

उदाहरण के लिए:

alert( 'x' > 'c' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bear' > 'Be' ); // true

दो तारों की तुलना करने के लिए एल्गोरिथ्म सरल है:

  •     दोनों तारों के पहले चरित्र की तुलना करें।
  •     यदि पहले stringसे पहला वर्ण दूसरे string की तुलना में अधिक (या कम) है, तो पहला string दूसरे की तुलना में अधिक (या कम) है। हमारा काम हो गया।
  •     अन्यथा, यदि दोनों तारों के पहले अक्षर समान हैं, तो दूसरे वर्णों की तुलना उसी तरह करें।
  •     या तो stringके अंत तक दोहराएं।
  •     यदि दोनों तार एक ही लंबाई में समाप्त होते हैं, तो वे समान हैं। अन्यथा, लंबी stringअधिक होती है।

ऊपर दिए गए उदाहरणों में, 'x'> 'c' की तुलना पहले चरण में होती है जबकि "Glow" और "Glee" वर्ण-दर-वर्ण की तुलना की जाती है:

    G, G के समान है।
    l, L के समान है।
    o, e से बड़ा है। यहाँ रुको। पहली
stringअधिक होती है।

Comparison of different types in javascript in Hindi


विभिन्न प्रकारों के मूल्यों की तुलना करते समय, Javascript मानों को संख्याओं में परिवर्तित करता है।

alert( '3' > 1 ); // true, string '3' becomes a number 3
alert( '03' == 3 ); // true, string '03' becomes a number 3

बूलियन मूल्यों के लिए, true 1 हो जाता है और false 0 बन जाता है।
alert( true == 1 ); // true
alert( false == 0 ); // true


Strict equality in javascript in Hindi


एक नियमित समानता की check == में एक समस्या है। यह 0 को falseसे अलग नहीं कर सकता:

alert( 0 == false ); // true

खाली
stringके साथ भी यही होता है:

alert( '' == false ); // true

ऐसा इसलिए होता है क्योंकि विभिन्न प्रकार के ऑपरेंड्स को समानता ऑपरेटर == द्वारा संख्याओं में परिवर्तित किया जाता है। खाली
string, झूठ की तरह, एक 0 बन जाती है।

अगर हम 0 को false से अलग करना चाहते हैं तो क्या करें?

एक सख्त समानता operator === टाइप रूपांतरण के बिना समानता की जांच करता है।

दूसरे शब्दों में, यदि a और b अलग-अलग प्रकार के हैं, तो एक === b तुरंत उन्हें परिवर्तित करने के प्रयास के बिना झूठा वापस आ .जाता है।

alert( 0 === false ); // false, because the types are different


एक “strict non-equality” operator भी है! == similer to =!

strict equality operator लिखने के लिए थोड़ा लंबा है, लेकिन यह स्पष्ट करता है कि क्या चल रहा है और त्रुटियों के लिए कम जगह छोड़ता है।



Comparison with null and undefined in javascript in Hindi


अन्य मानों की तुलना में null या undefined होने पर एक गैर-सहज व्यवहार होता है।

For a strict equality check ===

alert( null === undefined ); // false

    ये मूल्य अलग-अलग हैं, क्योंकि उनमें से प्रत्येक एक अलग प्रकार है।


गैर-सख्त जांच के लिए ==

alert( null == undefined ); // true


    एक विशेष नियम है। ये दोनों एक "प्यारी जोड़ी" हैं: वे एक-दूसरे के बराबर (== के अर्थ में) हैं, लेकिन कोई अन्य मूल्य नहीं।


For maths and other comparisons < > <= >=

   null/undefined संख्या में परिवर्तित हो जाते हैं: अशक्त 0 हो जाता है, जबकि
undefined  NaN हो जाता है।

अब कुछ मजेदार चीजें देखते हैं जो हम इन नियमों को लागू करते हैं। और, क्या अधिक महत्वपूर्ण है, कैसे उनके साथ एक जाल में नहीं पड़ना चाहिए।
अजीब परिणाम: शून्य बनाम 0

Strange result: null vs 0 in javascript : -


alert( null > 0 );  // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true

गणितीय रूप से, यह अजीब है। अंतिम परिणाम में कहा गया है कि "शून्य से अधिक या शून्य के बराबर है", इसलिए ऊपर की तुलनाओं में से एक में यह सच होना चाहिए, लेकिन वे दोनों झूठे हैं।

कारण यह है कि एक समानता जांच == और तुलना > <> = <= अलग तरीके से काम करते हैं। तुलना शून्य को एक संख्या में परिवर्तित करती है, इसे 0. के रूप में मानते हुए (3) null> = 0 सत्य है और (1) null> 0 गलत है।

दूसरी ओर, undefined और अशक्त के लिए समानता की जांच == को ऐसे परिभाषित किया गया है, बिना किसी रूपांतरण के, वे एक दूसरे के बराबर हैं और किसी अन्य चीज़ के बराबर नहीं हैं। ऐसा क्यों (2) null== 0 गलत है।

incomparable undefined


अन्य मूल्यों की तुलना में अपरिभाषित मूल्य का नहीं होना चाहिए:

यह शून्य को इतना नापसंद क्यों करता है? हमेशा झूठा!

हमें ये परिणाम मिले क्योंकि:

alert( undefined > 0 ); // false (1)
alert( undefined < 0 ); // false (2)
alert( undefined == 0 ); // false (3)
  •     तुलना (1) और (2) false हो जाती है क्योंकि undefinedNaN में परिवर्तित हो जाता है और NaN एक विशेष संख्यात्मक मान होता है जो सभी तुलनाओं के लिए गलत होता है।
  •     समानता की जांच (3) false हो जाती है क्योंकि undefined केवल null, undefined और कोई अन्य मूल्य नहीं के बराबर होता है।

समस्याओं से बचें

हम इन उदाहरणों पर क्यों गए? क्या हमें हर समय इन ख़ासियतों को याद रखना चाहिए? असल में ऐसा नहीं है। दरअसल, ये मुश्किल चीजें धीरे-धीरे समय के साथ परिचित हो जाएंगी, लेकिन उनके साथ समस्याओं से बचने का एक ठोस तरीका है:
  •     असाधारण देखभाल के साथ सख्त समानता === को छोड़कर अपरिभाषित / अशक्त के साथ किसी भी तुलना का व्यवहार करें।
  •     जब तक आप वास्तव में क्या कर रहे हैं यह सुनिश्चित नहीं है कि आप एक चर के साथ तुलना = => <= का उपयोग करते हैं, जो अशक्त / अपरिभाषित हो सकता है। यदि किसी चर में ये मान हो सकते हैं, तो उनके लिए अलग से जाँच करें।

सारांश
  •     तुलना ऑपरेटर एक बूलियन मान लौटाते हैं।
  •     "डिक्शनरी" ऑर्डर में strings को अक्षर-दर-अक्षर तुलना की जाती है।
  •     जब विभिन्न प्रकारों के मूल्यों की तुलना की जाती है, तो वे संख्याओं में परिवर्तित हो जाते हैं (एक सख्त समानता जांच के बहिष्करण के साथ)।
  •     मान शून्य और अपरिभाषित बराबर == एक दूसरे को और किसी भी अन्य मूल्य के बराबर नहीं है।
  •     वैरिएबल के साथ> या <जैसे तुलना का उपयोग करते समय सावधान रहें जो कभी-कभी अशक्त / अपरिभाषित हो सकते हैं। अशक्त / अपरिभाषित के लिए अलग से जाँच करना एक अच्छा विचार है।

0 Comments:

Post a Comment