JavaScript에서 in 연산자는 특정 프로퍼티(속성)가 객체 안에 존재하는지 여부를 확인할 때 사용하는 연산자입니다.
in 연산자는 왼쪽에 프로퍼티 이름(문자열 또는 심볼), 오른쪽에 확인 대상이 되는 객체를 배치하며, 프로퍼티가 존재하면 true, 존재하지 않으면 false를 반환합니다.
기본 문법
propertyName in objectName
사용 예제
아래 코드를 실행하면 in 연산자가 어떻게 동작하는지 직접 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<body>
<script>
var emp = {name:"Amit", subject:"Java"};
document.write("name" in emp);
document.write("<br>");
document.write("subject" in emp);
document.write("<br>");
document.write("MAX_VALUE" in Number);
document.write("<br>");
document.write("MIN" in Number);
</script>
</body>
</html>실행 결과
true true true false
결과 해석
"name" in emp→ true:emp객체에name프로퍼티가 존재합니다."subject" in emp→ true:emp객체에subject프로퍼티가 존재합니다."MAX_VALUE" in Number→ true: 내장 객체인Number에MAX_VALUE정적 프로퍼티가 존재합니다."MIN" in Number→ false:Number에는MIN이라는 프로퍼티가 없습니다(실제로는MIN_SAFE_INTEGER라는 이름을 사용합니다).
참고 사항
in 연산자는 객체 자신의 프로퍼티뿐만 아니라 프로토타입 체인에 있는 상속된 프로퍼티까지도 확인한다는 점에 유의해야 합니다. 예를 들어 "toString" in emp는 emp 객체에 직접 정의되지 않았더라도 Object.prototype에서 상속받은 메서드이므로 true를 반환합니다.
객체 자신의 프로퍼티만 확인하고 싶다면 Object.hasOwn()(또는 구형 브라우저에서는 hasOwnProperty()) 메서드를 사용하는 것이 좋습니다.