in 연산자

YS·2022년 7월 15일
0

JavaScript

목록 보기
7/7

자바스크립트 in 연산자

객체가 가지고 있는 프로퍼티 및 메소드의 존재 여부를 Boolean으로 반환함
in 연산자는 기본적으로 객체 용이다.
배열에다 in 연산자를 쓰면, 인덱스를 검사하게 되는 꼴이 된다.

for문

let arr = [1,2,"a","b",{c:100},[10,20]];
 
for(let i in arr)
    console.log(i); // 0 1 2 3 4 5 인덱스가 반환된다.
 
console.log("a" in arr) // false

배열

var trees = new Array("redwood", "bay", "cedar", "oak", "maple");
0 in trees         // true를 반환합니다.
3 in trees         // true를 반환합니다.
(1 + 2) in trees   // true를 반환합니다. 연산자 우선 순위에 의하여 이 구문의 괄호는 없어도 됩니다.
6 in trees         // false를 반환합니다.
"bay" in trees     // false를 반환합니다. 당신은 배열의 내용이 아닌, 인덱스 값을 명시하여야 합니다.
"length" in trees  // true를 반환합니다. length는 Array(배열) 객체의 속성입니다.
 
// 미리 정의된 객체
"PI" in Math       // true를 반환합니다.
"P" + "I" in Math  // true를 반환합니다.
 
// 사용자가 정의한 객체
var myCar = {company: "Lamborghini", model: "Lamborghini Veneno Roadster", year: 2014};
"company" in myCar // true를 반환합니다.
"model" in myCar   // true를 반환합니다.

객체

myObj = {
  no: 1,
  name: 'webisfree',
  getName: function() { return this.name; }
}
 
'no' in myObj; // true
'name' in myObj; // true
'getName' in myObj; // true
'url' in myObj; // false

in은 언제 많이 사용될까?

in의 쓰임은 다양할 수 있지만 특정 메소드, 프로퍼티 key값 이름의 존재 여부를 검증하기 위한 목적으로 많이 사용된다. 즉 없는 메소드, 프로퍼티를 동작할 경우 에러가 발생할 수 있으므로 사전에 여부를 먼저 확인하기 위한 목적이 크다.

-> 추가로 공부해야 할 것 : hasOwnProperty()

profile
"나의 개발 노트"

0개의 댓글