|
13 | 13 |
|
14 | 14 | ഇതിൻ്റെ അവസാനം ജാവാസ്ക്രിപ്റ്റിൻ്റെ ഇത്തരം അസ്വാഭാവിക പെരുമാറ്റങ്ങൾ കൊണ്ടുണ്ടാവുന്ന പ്രശ്നങ്ങളെ എങ്ങനെ ഒഴിവാക്കാം എന്നതിനെപ്പറ്റി നമുക്ക് നല്ല ധാരണ ലഭിക്കുന്നതാണ്. |
15 | 15 |
|
16 | | -## റിസൾട്ടായി ലഭിക്കുന്നത് ബൂലീൻ ആയിരിക്കും |
| 16 | +## റിസൾട്ടായി ലഭിക്കുന്നത് ബൂലിയൻ ആയിരിക്കും |
17 | 17 |
|
18 | | -എല്ലാ താരതമ്യ ഓപറേറ്ററുകളും ഒരു ബൂലീൻ വാല്ല്യുവാണ് റിട്ടേൺ ചെയ്യുന്നത്: |
| 18 | +എല്ലാ താരതമ്യ ഓപറേറ്ററുകളും ഒരു ബൂലിയൻ വാല്ല്യുവാണ് റിട്ടേൺ ചെയ്യുന്നത്: |
19 | 19 |
|
20 | 20 | - `true` -- അർത്ഥം "അതെ", "ശരി" അല്ലെങ്കിൽ "സത്യം". |
21 | 21 | - `false` -- അർത്ഥം "അല്ല", "തെറ്റ്", അല്ലെങ്കിൽ "സത്യമല്ല". |
@@ -72,10 +72,49 @@ alert( 'കാക്കപ്പെണ്ണ്' > 'കാക്ക' ); // true |
72 | 72 |
|
73 | 73 | ഉദാഹരണത്തിന്, അക്ഷരം വലുതാണോ ചെറുതാണോ എന്നതിന് ഇതിൽ സ്വാധീനം ഉണ്ട്. അതായത് `"A"` യും `"a"` യും തുല്ല്യമല്ല. ഇതിൽ ഏതാണ് വലുത്? ചെറിയക്ഷരം `"a"`. അത് എന്തുകൊണ്ടോണെന്ന് വെച്ചാൽ ചെറിയക്ഷരങ്ങൾ ആണ് ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിക്കുന്ന ഇൻ്റേണൽ എൻകോഡിംഗ് ടേബിളിൽ(Unicode) മുകളിൽ വരുന്നത്. ഇതിനെക്കുറിച്ച് വിശദമായി നമ്മൾ <info:string> ചാപ്റ്ററിൽ പഠിക്കുന്നതാണ്. |
74 | 74 | ``` |
| 75 | +## വ്യത്യസ്ത ടൈപ്പുകളെ(Data types) തമ്മിൽ താരതമ്യം ചെയ്യൽ |
| 76 | + |
| 77 | +രണ്ട് വ്യത്യസ്ത വിഭാഗത്തിൽ പെട്ട വാല്യുകളെ തമ്മിൽ താരതമ്യം ചെയ്യുമ്പോൾ, ജാവാസ്ക്രിപ്റ്റ് അവയെ ആദ്യം ഒരു നമ്പറിലേക്ക് മാറ്റും. |
| 78 | + |
| 79 | +ഉദാഹരണത്തിന്: |
| 80 | + |
| 81 | +```js run |
| 82 | +alert( '2' > 1 ); // true, സ്ട്രിംഗ് '2', നമ്പർ 2 ആയി മാറുന്നു. |
| 83 | +alert( '01' == 1 ); // true, സ്ട്രിംഗ് '01' നമ്പർ 1 ആയി മാറുന്നു. |
| 84 | +``` |
| 85 | +ബൂലിയൻ വാല്യുകളിൽ `true` `1` ആയും `false` `0` ആയും മാറുന്നു. |
| 86 | + |
| 87 | +ഉദാഹരണത്തിന്: |
| 88 | + |
| 89 | +```js run |
| 90 | +alert( true == 1 ); // true |
| 91 | +alert( false == 0 ); // true |
| 92 | +``` |
| 93 | +``` |
| 94 | +
|
| 95 | +````smart header="A funny consequence" |
| 96 | +അതേ സമയം ഇതും സാധ്യമാണ്: |
| 97 | +
|
| 98 | +- രണ്ട് വാല്യുകളും തുല്യമാവാം. |
| 99 | +- അതിലൊന്ന് `true` ഒരു ബൂലിയനായും, മറ്റൊന്ന് `false` ഒരു ബൂലിയനായും. |
| 100 | +
|
| 101 | +
|
| 102 | +ഉദാഹരണത്തിന്: |
| 103 | +
|
| 104 | +``` js run |
| 105 | +let a = 0; |
| 106 | +alert( Boolean(a) ); // false |
| 107 | +
|
| 108 | +let b = "0"; |
| 109 | +alert( Boolean(b) ); // true |
| 110 | +
|
| 111 | +alert(a == b); // true! |
| 112 | +``` |
| 113 | +ജാവാസ്ക്രിപ്റ്റിൻ്റെ ഭാഗത്തു നിന്നു നോക്കുമ്പോൾ ഈ റിസൾട്ട് സാധാരണമാണ്. ഒരു ഇക്വാലിറ്റി ചെക്ക് വാല്യുകളെ നേരിട്ട് നമ്പറിലേക്ക് മാറ്റുമ്പോൾ (അതായത് `"0"`, `0` ആയി മാറുന്നു), `Boolean` മറ്റു പല നിയമങ്ങളും അനുസരിച്ചാണ് ഇതു ചെയ്യുന്നത്. |
75 | 114 |
|
76 | 115 | ## സംഗ്രഹം |
77 | 116 |
|
78 | | -- താരതമ്യ ഓപറേറ്ററുകൾ ഒരു ബൂലീൻ വാല്യു (`true` or `false`) പുറത്ത് വിടുന്നു (റിട്ടേൺ ചെയ്യുന്നു). |
| 117 | +- താരതമ്യ ഓപറേറ്ററുകൾ ഒരു ബൂലിയൻ വാല്യു (`true` or `false`) പുറത്ത് വിടുന്നു (റിട്ടേൺ ചെയ്യുന്നു). |
79 | 118 | - സ്ട്രിങ്ങുകൾ ഓരോ അക്ഷരം വീതമാണ് താരതമ്യം ചെയ്യപ്പെടുന്നത്. ഒരു ഡിക്ഷ്ണറിയിൽ വാക്കുകൾ ക്രമീകരിച്ചിരിക്കുന്നത് പോലെ. |
80 | 119 | - വ്യത്യസ്ത വിഭാഗങ്ങളിൽപ്പെട്ട(different data types) വാല്യൂകൾ തമ്മിൽ താരതമ്യം ചെയ്യുമ്പോൾ, അവ ആദ്യം ഒരു നമ്പറിലേക്ക് മാറ്റപ്പെടുന്നു.( സ്ട്രിക്റ്റ് ഇക്വാലിറ്റി ഓപറേറ്ററുകൾ(`===` and `!==`) ഉപയോഗിക്കുമ്പേൾ ഇത് ബാധകമാവുന്നില്ല ). |
81 | 120 | - `null`,`undefined` വാല്യുകൾ അവയെ പരസ്പരം പൂർണമാക്കുന്നു(`==`). അവ മറ്റൊരു വാല്യുവുമായും തുല്ല്യമാകുന്നില്ല. |
|
0 commit comments