자바스크립트 in 연산자의 객체 멤버 검사 활용법


자바스크립트 in 연산자는 객체의 멤버의 존재 유무를 검사하며, 결과를 true, false로 반환합니다. "멤버명" in 객체명 형태로 멤버명은 따옴표 사이에 위치해야 합니다.

자바스크립트 in 연산자로 객체 멤버 검사

in 연산자는 객체안에 속성이나 메서드와 같은 멤버가 존재하는지 검사할 때 사용합니다. 원하는 멤버명이 존재하면 true를 반환하고, 없으면 false를 반환합니다.


이 때 유의점은 "멤버명" in 객체명 형태와 같이 선택할 속성명이나 메서드명은 따옴표 사이에 위치해야 합니다.

<script>
	//stock 객체 생성 및 멤버 설정
	var stock =
	{
		name : "samsung",
		pbr : 1.2,
	};

	//멤버명 name 존재 확인
	document.write( ("name" in stock) + "<br>" );

	//멤버명 price 존재 확인
	document.write( ("price" in stock) + "<br>" );
</script>

결과

true
false

in 연산자로 반복문에서 객체 범위 지정

in 연산자는 반복문으로 객체 멤버를 출력할 때 객체명의 범위를 지정하는 역할을 합니다.


어떤 객체로부터 반복문을 실행할 것인지 선택할 때 in 연산자로 객체명의 범위를 고르는 예제입니다.

<script>
	//생성자 함수 선언
	function Stock ( name, price, pbr, per, roe )
	{
		this.name = name;
		this.price = price;
		this.pbr = pbr;
		this.per = per;
		this.roe = roe;
	}

	//객체 생성 및 데이터 삽입
	var amorepacific = new Stock ( "아모레퍼시픽", 200500, 3.13, 41.66, 0.09 );
	var ncsoft = new Stock ( "엔씨소프트", 449500, 3.51, 21.63, 0.16 );
	var naver = new Stock ( "네이버", 131000, 4.20, 23.89, 0.21 )

	//엔씨소프트 멤버 출력시 in 연산자 사용
	for ( var num in ncsoft )
	{
		document.write ( num + " : " + ncsoft[num] + "<br>" );
	}
</script>

결과

name : 엔씨소프트
price : 449500
pbr : 3.51
per : 21.63
roe : 0.16

반복문에서 변수의 범위를 in ncsoft를 사용했기 때문에 객체명이 ncsoft인 값의 멤버들만 출력이 됩니다.