컴퓨터 세상/JavaScript

JavaScript - in 연산자, instanceof 연산자

Jimin Daddy 2020. 7. 25. 11:21

## 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