비교 연산자는 두 피연산자의 값을 비교하고
true
또는 false
문입니다. 다음 예에서는
엄격한 등호 연산자 (===
)를 사용하여 두 피연산자 비교: 표현식
2 + 2
및 4
값 표현식과
4
값이 동일하며 이 표현식은 true
로 평가됩니다.
2 + 2 === 4
> true
유형 강제 변환 및 동등성
가장 자주 사용되는 비교 연산자 두 가지는 느슨한 동등성을 위한 ==
입니다.
엄격한 균등의 경우 ===
를 사용합니다. ==
는 둘 사이에 느슨한 비교를 수행합니다.
피연산자를 일치하는 데이터 유형으로 강제하여 값을 변환해야 합니다. 대상
예를 들어 2 == "2"
는 비교가 진행 중이더라도 true
를 반환합니다.
곱해야 합니다.
2 == 2
> true
2 == "2"
> true
!=
의 경우도 마찬가지입니다. 피연산자가 다음과 같은 경우에만 true
를 반환합니다.
대략적으로 동일하지 않습니다.
2 != 3
> true
2 != "2"
> false
===
또는 !==
를 사용하는 엄격한 비교는 유형 강제 변환을 실행하지 않습니다.
엄격한 비교를 통해 true
로 평가하려는 경우 비교되는 값에
동일한 데이터 유형을 사용해야 합니다 따라서 2 == "2"
는 true
를 반환하지만 2 === "2"
을 반환합니다.
은 false
를 반환합니다.
2 === 3
> false
2 === "2"
> false
자동 강제 변환으로 인해 발생할 수 있는 모호성을 없애려면 항상 ===
를 사용합니다.
있습니다.
연산자 | 설명 | 사용 | 결과 |
---|---|---|---|
=== | 완전히 같음 | 2 === 2 | true |
!== | 엄격하지 않음 | 2 !== '2' | true |
== | 같음 (또는 '느슨하게 같음') | 2 == '2' | true |
!= | 같지 않음 | 2 != '3' | true |
> | 초과 | 3 > 2개 | true |
>= | 이상 | 2 이상 | true |
< | 미만 | 2 < 3개 | true |
<= | 이하 | 2 <= 3 | true |
트러티와 거짓
JavaScript의 모든 값은 암시적으로 true
또는 false
이며 다음과 같이 강제될 수 있습니다.
해당하는 부울 값입니다. 예를 들어 '느슨하게 같음'
비교 연산자입니다. 제한된 값 세트는 false
로 강제 변환됩니다.
0
null
undefined
NaN
- 빈 문자열 (
""
)
하나 이상을 포함하는 문자열을 포함하여 다른 모든 값은 true
로 강제 변환됩니다.
0이 아닌 모든 숫자를 입력할 수 있습니다. 이를 일반적으로 '진실'이라고 합니다. 및
'거짓' 값으로 사용됩니다.
"My string" == true
> true
100 == true
> true
0 == true
> false
논리 연산자
두 개 이상의 조건문의 평가에 따라 스크립트의 흐름을 제어하려면 논리곱 (&&
), OR (||
), NOT (!
) 연산자를 사용합니다.
2 === 3 || 5 === 5;
> true
2 === 2 && 2 === "2"
> false
2 === 2 && !"My string."
> false
논리적 NOT (!
) 표현식은 피연산자의 참 또는 거짓 값을 무효화하여 피연산자가 false
로 평가되면 true
로, 피연산자가 true
로 평가되면 false
로 평가됩니다.
true
> true
!true
> false
!false
> true
다음과 같이 다른 데이터 유형 앞에 논리 NOT 연산자 (!
)를 사용합니다.
해당 값을 부울로 강제 변환하고 참 또는
잘못된 값입니다.
"string"
> "string"
!"string"
> false
0
> 0
!0
> true
두 개의 NOT 연산자를 사용하여 데이터를 일치하는 부울 값:
!!"string"
> true
!!0
> false
논리 연산자 AND 및 OR 연산자는 자체적으로 강제 변환을 수행하지 않습니다. 그들은 평가 중인 두 피연산자 중 하나의 값을 반환 피연산자입니다.
논리곱 (&&
)은 두 피연산자 중 첫 번째를 반환합니다. 단, 해당 피연산자가
false
로 평가되고 그렇지 않은 경우 두 번째 피연산자가 평가됩니다. 이에 비해
불리언 값으로 평가되면 양변의 피연산자가 있는 경우에만 true
를 반환합니다.
논리곱의 논리곱이 true
로 평가됩니다. 어느 한 쪽이 false
로 평가되면
false
를 반환합니다.
true && false
> false
false && true
> false
false && false
> false
true && true
> true
&&
가 두 개의 비부울 피연산자와 함께 사용되면 첫 번째 피연산자가 반환됩니다.
false
로 강제 변환할 수 있는 경우 변경되지 않습니다. 첫 번째 피연산자를 강제 변환할 수 있는지 여부
true
이면 두 번째 피연산자가 변경되지 않은 상태로 반환됩니다.
false && "My string"
> false
null && "My string"
> null
"My string" && false
> false
"My string" && "My second string"
> "My second string"
2 === 2 && "My string"
> "My string"
논리합(OR)(||
)은 두 피연산자 중 첫 번째가 피연산자인 경우에만 해당 피연산자를 반환합니다.
true
로 평가되고 그렇지 않은 경우 두 번째 피연산자가 평가됩니다. 이에 비해
불리언 값으로 평가되므로 피연산자 중 하나가 되면 true
가 반환됩니다.
어느 쪽도 true
로 평가되지 않으면 true
을 반환합니다.
false
:
true || false
> true
false || true
> true
true || true
> true
false || false
> false
두 개의 비부울 피연산자와 함께 ||
를 사용하면 첫 번째 피연산자가 반환됩니다.
true
로 강제 변환할 수 있는 경우 변경되지 않습니다. 첫 번째 피연산자를 강제 변환할 수 있는지 여부
false
이면 두 번째 피연산자가 변경되지 않은 상태로 반환됩니다.
false || "My string"
> "My string"
null || "My string"
> "My string"
"My string" || false
> "My string"
"My string" || "My second string"
> "My string"
2 === 2 || "My string"
> true
Nullish 병합 연산자
ES2020에 도입,
'nullish 병합 연산자' (??
)는 첫 번째 피연산자를 반환합니다.
피연산자에 null
또는 undefined
이외의 값이 있습니다. 그렇지 않으면 다음을 반환합니다.
두 번째 피연산자입니다.
null ?? "My string"
> "My string"
undefined ?? "My string"
> "My string"
true ?? "My string";
> true
??
는 논리적 OR과 유사하지만 첫 번째 피연산자가 더 엄격합니다.
있습니다. ||
는
undefined
및 null
를 포함하여 false
로 강제 변환됩니다. ??
는 두 번째 함수를 반환합니다.
첫 번째 피연산자가 null
또는 undefined
이외의 값인 경우
false
로 강제할 수 있습니다.
0 ?? "My string";
> 0
false ?? "My string";
> false
undefined ?? "My string";
> "My string"
논리 할당 연산자
할당 연산자를 사용하여 두 번째 연산자의 값을 첫 번째 연산자에 할당합니다.
연산자와 같습니다. 가장 일반적인 예는 단일 등호 (=
)로,
선언된 변수에 값 할당
논리 할당 연산자를 사용하여 변수에 값을 조건부로 할당 참 또는 거짓 값에 기반합니다.
논리 AND 할당 (&&=
) 연산자는 두 번째 피연산자를 평가하고
첫 번째 피연산자가
true
—'첫 번째 피연산자가 true인 경우
를 사용하세요."
let myVariable = false;
myVariable &&= 2 + 2;
> false
myVariable = true;
myVariable &&= 2 + 2;
> 4
첫 번째 피연산자의 참값과 거짓 값은
수행되기 때문입니다. 그러나 비교를 사용하여 첫 번째 피연산자를 평가하려고 하면
연산자는 true
또는 false
불리언 결과를 얻으며, 이 값에는
값:
let myVariable = 5;
myVariable > 2 &&= "My string"
> SyntaxError: Invalid left-hand side in assignment
논리 OR 할당 (||=
) 연산자는 두 번째 피연산자를 평가하고
첫 번째 피연산자가 false
로 평가되는 경우 첫 번째 피연산자에 할당합니다.
첫 번째 피연산자가 거짓인 경우 두 번째 피연산자의 값을
피연산자를 사용하세요."
let myVariable = false;
myVariable ||= 2 + 2;
> 4
myVariable = true;
myVariable ||= 2 + 2;
> true
이해도 확인
다음 중 '완전히 같음'을 나타내는 연산자는 무엇인가요?
=
!=
==
===