기타 연산자

조건 연산자(?:)

조건 연산자(?:)는 피연산자가 세 개인데, 첫 번째 피연산자는 반드시 불린값이어야 한다.

첫 번째 피연산자가 참이면 조건식의 값은 두 번째 피연산자의 값에 해당한다.

첫 번째 피연산자가 거짓이면 조건식의 값은 세 번째 피연산자의 값에 해당한다.

var x = 10;
var y = 15;
console.log(x > y ? x-y : y-x);      // 5

typeof 연산자

typeof 연산자는 피연산자의 자료형을 나타내는 문자열을 반환한다.

typeof 연산자는 피연산자가 숫자나 문자열, 불린값일 경우 "number", "string", "boolean"으로 각각 평가한다. 객체나 배열, null에 대해서는 "object"로 평가한다. 함수 피연산자에 대해서는 "function"으로 평가하고 피연산자가 undefined인 경우에는 "undefined"로 평가한다.

객체 생성 연산자(new)

new 연산자는 새 객체를 생성한 후 생성자 함수를 호출해 해당 객체를 초기화한다. 문법은 new 생성자(인자)다.

인자는 콤마로 구분하고 괄호로 둘러싼 값이다. 인자가 없으면 괄호를 생략할 수 있다.

new 연산자를 사용하는 예제는 다음과 같다.

var obj = new Object;
var date = new Date();
var array = new Array;

new 연산자는 먼저 아무런 프로퍼티가 정의되지 않은 새 객체를 생성한다. 그런 다음 지정된 생성자 함수를 호출하고, 이때 지정된 인자를 비롯해 새로 생성된 객체를 this 키워드의 값으로 전달한다. 그럼 생성자 함수에서는 this 키워드를 이용해 새 객체를 원하는 방식으로 초기화할 수 있다.

delete 연산자

delete 연산자는 객체 프로퍼티나 배열 원소, 또는 피연산자로 지정한 변수를 삭제하려고 시도한다. 이 연산자는 삭제 연산이 성공적으로 수행된 경우에만 참을 반환하고 피연산자가 삭제되지 않은 경우에는 거짓을 반환한다.

존재하지 않은 프로퍼티를 대상으로 delete를 호출하면 참이 반환된다. 다음 예제를 보자.

var obj = {x:1, y:2};       
console.log(obj.x);         // 1
console.log(delete obj.x);  // true, 프로퍼티 하나를 삭제
console.log(obj.x);         // undefined, 프로퍼티가 존재하지 않음
console.log(delete obj.x);  // true, 존재하지 않은 프로퍼티를 삭제

var 문으로 선언한 사용자 정의 변수는 삭제할 수 없다.

var obj1 = {x:1, y:2};      
console.log(delete obj1);   // false, 선언된 변수를 삭제할 수 없음
obj2 = {x:1, y:2};      
console.log(delete obj2);   // true, var 문으로 선언되지 않음

delete 연산자는 프로퍼티에만 영향을 주고, 그러한 프로퍼티를 참조하는 객체에는 영향을 주지 않는다. 다음 예제를 보자.

obj1 = {x:1, y:2};      
obj2 = obj1;
console.log(delete obj1);   // true
console.log(obj2.x);        // 1
console.log(obj1.x);        // ReferenceError: obj1 is not defined

함수 호출 연산자

자바스크립트에서 () 연산자는 함수를 호출하는 데 사용된다. 첫 번째 피연산자는 항상 함수나 함수를 가리키는 수식의 이름이고, 이어서 () 안에 인자가 따라온다.

함수 호출 예제는 다음과 같다.

function multiply(x, y){
    return x*y;
}
console.log(multiply(5,5));     // 25
console.log(Math.abs(-10));     // 10

관련 수업

← 이전다음 →