## in 연산자
- 좌변의 피연산자로 문자열을 받는다.
- 우변의 피연산자로는 객체나 배열을 받는다.
- 좌변 값이 우변 객체의 프로퍼티 이름에 해당할 경우 연산 결과는 true 임.
var point = {x:1, y:1}; // 객체 정의
var has_x_coord = "x" in point; // true
var has_y_coord = "y" in point; // true
var has_z_coord = "z" in point; // false (z는 프로퍼티가 아님)
var ts = "toString" in point; // toString은 object 에서 상속된 프로퍼티이므로 true.
## instanceof 연산자
- 좌변의 피 연산자로 객체를, 우변의 피연산자로 객체 클래스의 이름을 받고
좌변 객체가 우변 클래스의 인스턴스일 경우 연산 결과는 true이고 아닌 경우 false임.
ex) 객체일 경우
var d = new Date(); // Date() 생성자로 새로운 객체 d를 생성
d instanceof Date; // true. d 는 Date()에 의해 생성됨.
d instanceof Object; // ture. 모든 객체는 Object의 인스턴스임.
d instanceof Number; // false. d는 Number의 객체가 아님.
ex) 배열일 경우
var a = [1, 2, 3];
a instanceof Array; // true. a는 배열 객체임.
a instanceof Object; // true. 모든 배열은 객체이며, 모는 객체는 Object의 인스턴스임.
a instanceof RegExp; // false. 배열은 정규 표현식이 아니므로.
- 좌변 피연산자가 객체가 아니거나 우변 피연산자가 어떤 생성자 함수에도 해당하지 않는 객체라면 결과는 false임.
- 우변 피연산자가 객체가 아닌 경우에는 런타임 에러 발생
'컴퓨터 세상 > JavaScript' 카테고리의 다른 글
변수 (0) | 2024.03.28 |
---|---|
주석문, 자료형 (0) | 2024.03.28 |
JavaScript - 문자열 비교, 문자열 연산자 (0) | 2020.07.25 |
JavaScript - 객체 (0) | 2020.07.20 |
함수 리터럴 (0) | 2020.07.20 |