in
연산자는 명시된 속성이 명시된 객체에 존재하면 true
를 반환합니다.
구문
속성 in 객체명
인자
속성
- 속성의 이름이나 배열의 인덱스를 뜻하는 문자열 또는 수 값입니다.
객체명
- 객체의 이름입니다.
설명
다음 예제들은 in
연산자의 용도를 보여 줍니다.
// 배열 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를 반환합니다.
당신은 반드시 in
연산자의 오른쪽에 객체를 명시하여야 합니다. 예컨대 당신은 String
생성자로 만들어진 문자열을 명시할 수 있지만 문자열 리터럴은 명시할 수 없습니다.
var color1 = new String("green"); "length" in color1 // true를 반환합니다. var color2 = "coral"; "length" in color2 // color2는 String 객체가 아니기에 오류를 냅니다.
제거되었거나 정의되지 않은 속성에 대하여 in
연산자 사용하기
in
연산자는 delete
연산자로 제거된 속성에 대하여 false
를 반환합니다.
var myCar = {company: "Lamborghini", model: "Lamborghini Veneno Roadster", year: 2014}; delete myCar.company; "company" in myCar; // false를 반환합니다. var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); delete trees[3]; 3 in trees; // false를 반환합니다.
만약 당신이 속성을 undefined
로 설정하였는데 그것을 제거하지 않으면, in
연산자는 그 속성에 대하여 true
를 반환합니다.
var myCar = {company: "Lamborghini", model: "Lamborghini Veneno Roadster", year: 2014}; myCar.company = undefined; "company" in myCar; // true를 반환합니다.
var trees = new Array("redwood", "bay", "cedar", "oak", "maple"); trees[3] = undefined; 3 in trees; // true를 반환합니다.
상속된 속성
in
연산자는 프로토타입 체인에 의하여 접근할 수 있는 속성에 대하여 true
를 반환합니다.
"toString" in {}; // true를 반환합니다.
명세
명세 | Status | Comment |
---|---|---|
ECMAScript 2016 Draft (7th Edition, ECMA-262) The definition of 'Relational Operators' in that specification. |
Draft | |
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Relational Operators' in that specification. |
Standard | |
ECMAScript 5.1 (ECMA-262) The definition of 'The in Operator' in that specification. |
Standard | |
ECMAScript 3rd Edition (ECMA-262) The definition of 'The in Operator' in that specification. |
Standard | 초기의 정의가 담겨 있습니다. JavaScript 1.4에 추가되었습니다. |
브라우저 호환성
기능 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
지원 | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
기능 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
지원 | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |