Porovnání JavaScriptu a logické operátory
Operátory Comparison a Logical se používají k testování na true
nebo
false
.
Porovnávací operátory
Porovnávací operátory se používají v logických příkazech k určení rovnosti nebo rozdílu mezi proměnnými nebo hodnotami.
Vzhledem k tomu x = 5
níže uvedená tabulka vysvětluje operátory porovnání:
Operator | Description | Comparing | Returns | Try it |
---|---|---|---|---|
== | equal to | x == 8 | false | |
x == 5 | true | |||
x == "5" | true | |||
=== | equal value and equal type | x === 5 | true | |
x === "5" | false | |||
!= | not equal | x != 8 | true | |
!== | not equal value or not equal type | x !== 5 | false | |
x !== "5" | true | |||
x !== 8 | true | |||
> | greater than | x > 8 | false | |
< | less than | x < 8 | true | |
>= | greater than or equal to | x >= 8 | false | |
<= | less than or equal to | x <= 8 | true |
Jak to lze použít
Porovnávací operátory lze použít v podmíněných příkazech k porovnání hodnot a provedení akce v závislosti na výsledku:
if (age < 18) text = "Too young to buy alcohol";
Více o použití podmíněných příkazů se dozvíte v další kapitole tohoto tutoriálu.
Logické operátory
Logické operátory se používají k určení logiky mezi proměnnými nebo hodnotami.
Vzhledem k tomu x = 6
a y = 3
, níže uvedená tabulka vysvětluje logické operátory:
Operator | Description | Example | Try it |
---|---|---|---|
&& | and | (x < 10 && y > 1) is true | |
|| | or | (x == 5 || y == 5) is false | |
! | not | !(x == y) is true |
Podmíněný (ternární) operátor
JavaScript také obsahuje podmíněný operátor, který přiřazuje hodnotu proměnné na základě nějaké podmínky.
Syntax
variablename = (condition) ? value1:value2
Příklad
let voteable = (age < 18) ? "Too young":"Old enough";
Je-li proměnná věk hodnota nižší než 18, bude hodnota proměnné hlasovat „Příliš mladý“, jinak bude hodnota hlasovatelnosti „Dost starý“.
Porovnání různých typů
Porovnání dat různých typů může přinést neočekávané výsledky.
Při porovnávání řetězce s číslem JavaScript při porovnávání převede řetězec na číslo. Prázdný řetězec se převede na 0. Nečíselný řetězec se převede na NaN
který je vždy false
.
Case | Value | Try |
---|---|---|
2 < 12 | true | |
2 < "12" | true | |
2 < "John" | false | |
2 > "John" | false | |
2 == "John" | false | |
"2" < "12" | false | |
"2" > "12" | true | |
"2" == "12" | false |
Při porovnávání dvou řetězců bude „2“ větší než „12“, protože (abecedně) 1 je menší než 2.
Aby byl zajištěn správný výsledek, měly by být proměnné před porovnáním převedeny na správný typ:
age = Number(age);
if (isNaN(age)) {
voteable = "Input is not a number";
} else {
voteable = (age < 18) ? "Too young" : "Old enough";
}