=== 완전 항등 연산자

expression1 === expression2

두 표현식이 동일한지 여부를 테스트합니다. 완전 항등 연산자(===)는 데이터 유형이 변환되지 않는다는 점을 제외하면 항등 연산자(==)와 동일한 방식으로 연산을 수행합니다. 데이터 유형을 포함하여 두 표현식이 모두 동일한 경우 결과는 true입니다.

동일성의 정의는 다음과 같이 매개 변수의 데이터 유형에 따라 다릅니다.

지원 버전: ActionScript 1.0, Flash Lite 2.0

피연산자

expression1 : Object - 숫자, 문자열, 부울 값, 변수, 객체, 배열 또는 함수입니다.

expression2 : Object - 숫자, 문자열, 부울 값, 변수, 객체, 배열 또는 함수입니다.

반환값

Boolean - 부울 형식의 비교 결과입니다.

예제

다음 코드의 주석에서는 항등 연산자와 완전 항등 연산자를 사용하는 연산의 반환값을 보여 줍니다.

 // 변환이 수행되지 않았기 때문에 둘 다 true를 반환합니다. 
var string1:String = "5"; 
var string2:String = "5"; 
trace(string1 == string2); // true 
trace(string1 === string2); // true 
// 이 예제에서는 자동 데이터 유형 지정 기능을 통해 5를 "5"로 변환합니다. 
var string1:String = "5"; 
var num:Number = 5; 
trace(string1 == num); // true 
trace(string1 === num); // false 
// 이 예제에서는 자동 데이터 유형 지정 기능을 통해 true를 "1"로 변환합니다. 
var string1:String = "1"; 
var bool1:Boolean = true; 
trace(string1 == bool1); // true 
trace(string1 === bool1); // false 
// 이 예제에서는 자동 데이터 유형 지정 기능을 통해 false를 "0"으로 변환합니다. 
var string1:String = "0"; 
var bool2:Boolean = false; 
trace(string1 == bool2); // true 
trace(string1 === bool2); // false 

다음 예제에서는 완전 항등 관계에서 참조 변수를 처리하는 방식과 리터럴 값이 포함된 변수를 처리하는 방식의 차이점을 보여 줍니다. 이러한 차이 때문에 String 리터럴을 사용하고 String 클래스에 new 연산자를 사용하지 않습니다.

 // 리터럴 값을 사용하여 문자열 변수를 만듭니다. 
var str:String = "asdf"; 
// 참조인 변수를 만듭니다. 
var stringRef:String = new String("asdf"); 
// 항등 연산자는 리터럴, 변수 및 참조를 구분하지 
// 않습니다. 
trace(stringRef == "asdf"); // true 
trace(stringRef == str); // true 
trace("asdf" == str); // true 
// 완전 항등 연산자는 참조인 변수를 리터럴 및 변수와 
// 다른 것으로 간주합니다. 
trace(stringRef === "asdf"); // false 
trace(stringRef === str); // false 

참고 사항

! 논리 NOT 연산자, != 비항등 연산자, !== 완전 비항등 연산자, && 논리 AND 연산자, || 논리 OR 연산자, == 항등 연산자