JavaScript에서 같음을 확인하는 방법: 1. "==" 또는 "!==" 연산자를 사용하여 두 피연산자의 값이 같은지 비교합니다. 2. "===" 또는 "! ==" 연산자 기호는 두 피연산자의 값이 같은지 비교하고, 그 유형이 같은지 확인합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
JavaScript는 평등을 결정합니다
JavaScript에서는==
、===
、!=
、!==
연산자를 사용하여 평등 또는 불평등을 결정할 수 있습니다.
동등 감지 연산자 | Explanation |
---|---|
==(동등) | 비교 두 피연산자의 값이 같은지 |
!= (기다리고 싶지 않음) | 두 피연산자의 값이 같지 않은지 비교 |
=== (합동) | 둘을 비교하여 두 피연산자의 값이 같은지, 유형이 같은지 확인 |
!== (일치하지 않음) | 두 피연산자의 값이 같지 않은지 비교 동등하고, 그 유형이 동일하지 않은지 확인하세요 |
항등 연산에서는 다음 사항에 주의해야 합니다.
피연산자가 부울 값인 경우 먼저 숫자 값으로 변환됩니다. 여기서 false는 0으로 변환되고 true는 1로 변환됩니다.
피연산자 중 하나가 문자열이고 다른 피연산자는 숫자인 경우 먼저 문자열을 숫자로 변환해 보세요.
한 피연산자가 문자열이고 다른 피연산자가 객체인 경우 먼저 객체를 문자열로 변환해 보세요.
피연산자 중 하나가 숫자이고 다른 피연산자는 객체인 경우 먼저 객체를 숫자로 변환해 보세요.
두 피연산자가 모두 객체인 경우 참조 주소를 비교하세요. 참조 주소가 동일하면 동일하고, 그렇지 않으면 동일하지 않습니다.
예제 1
다음은 특수 피연산자의 동일 비교입니다.
console.log("1" == 1); //返回true。字符串被转换为数字 console.log(true == 1); //返回true。true被转换为1 console.log(false == 0); //返回true。false被转换为0 console.log(null == 0); //返回false console.log(undefined == 0); //返回false console.log(undefined == null); //返回true console.log(NaN == "NaN"); //返回false console.log(NaN ==1); //返回false console.log(NaN == NaN); //返回false console.log(NaN != NaN); //返回true
NaN 은 자신을 포함한 어떤 값과도 동일하지 않습니다. null 값과 정의되지 않은 값은 동일하지만 데이터 유형이 다릅니다. 동등 비교에서는 null과 undefine을 다른 유형의 값으로 변환하는 것이 허용되지 않습니다.
예제 2
다음 두 변수의 값은 동일합니다.
var a = "abc" + "d"; var b = "a" + "bcd"; console.log(a == b); //返回true
숫자 및 부울 값의 동등 비교 연산은 상대적으로 효율적인 반면, 문자열은 문자별로 비교해야 하며, 동등 비교 연산 효율이 상대적으로 낮습니다.
합동 연산에서는 다음 문제에 주의해야 합니다.
두 피연산자가 모두 단순 값인 경우 값이 동일하고 유형이 동일한 한 합동입니다.
한 피연산자는 단순 값이고 다른 피연산자는 복합 객체인 경우 합동이 아닙니다.
두 피연산자가 복합 객체인 경우 참조 주소가 동일한지 비교합니다.
예제 3
다음은 특수 피연산자의 합동 비교입니다.
console.log(null === undefined); //返回false console.log(0 === "0"); //返回false console.log(0 === false); //返回false
예제 4
다음은 두 객체를 비교한 것으로, 둘 다 동일한 주소를 참조하므로 true를 반환합니다.
var a = {}; var b = a; console.log(a === b); //返回true
다음 두 객체는 구조는 동일하지만 주소가 다르기 때문에 합동이 아닙니다.
var a = {}; var b = {}; console.log(a === b); //返回false
예제 5
복합 객체의 경우 참조 주소를 주로 비교하고, 객체의 값은 비교하지 않습니다.
var a = new String("abcd); //定义字符串“abcd”对象 var b = new String("abcd); //定义字符串“abcd”对象 console.log(a === b); //返回false console.log(a == b); //返回false
위의 예에서 두 객체의 값은 같지만 참조 주소가 다르기 때문에 기다리기를 원하지도 않고 같지도 않습니다. 따라서 복합 객체의 경우 같음 == 및 일치 === 연산의 결과는 동일합니다.
예제 6
간단한 값의 경우, 유형이 동일하고 값이 동일하면 표현식 연산의 프로세스 변경이나 변수의 참조 주소에 관계없이 합동입니다.
var a = "1" + 1; var b = "11"; console.log(a ===b); //返回true
예 7
표현식 (a>b || a==b)는 표현식 (a>=b)와 정확히 동일하지 않습니다.
var a = 1; var b = 2; console.log((a > b || a == b) == (a >= b)); //返回true,此时似乎相等
변수 a와 b에 각각 null과 undefine이 할당되면 false 값이 반환되어 두 표현식이 완전히 동일하지 않음을 나타냅니다.
var a = null; var b = undefined; console.log((a > b || a == b) == (a >= b)); //返回false,表达式的值并非相等
null == undefound가 true와 같기 때문에 표현식(a > b || a == b)의 반환 값은 true이지만 null >= undefine 표현식의 반환 값은 false입니다.
【관련 권장 사항:javascript 학습 튜토리얼】
위 내용은 JavaScript에서 단계가 동일한지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!