모던 자바스크립트 Deep dive CH07-02

김현규·2022년 9월 18일
post-thumbnail
  • Chapter 07 연산자

  • 논리 연산자

    논리 부정(!) 연산자는 언제나 불리언 값을 반환한다. 피연산자가 불리언 값이 아니더라도 불리언 타입으로 암묵적 타입 변환된다.
!0; // true
!'Hello'; // false

논리합(||) 또는 논리곱(&&) 연산자 표현식의 평가 결과는 불리언 값이 아닐 수도 있다.
논리합(||) 또는 논리곱(&&) 연산자 표현식은 언제나 2개의 피연산자 중 어느 한쪽으로 평가된다.

'Cat'; && 'Dog'; //'Dog'
  • 쉼표 연산자

    쉼표(,) 연산자는 왼쪽 피연산자부처 차례로 피연산자를 평가하고 마지막 피연산자의 평가가 끝가면 마지막 피연산자의 평가 결과를 반환한다.
var x,y,z;

x = 1, y = 2, z = 3; // 3
  • typeof 연산자

    typeof 연산자는 피연산자의 데이터 타입을 문자열로 반환한다.
    typeof 연산자는 7가지 문자열 string, number, boolean, undefined, symbol, object, function 이 존재한다.
typeof '' // string
typeof 1 // number
typeof NaN // number
typeof true // boolean
typeof undefined // undefined
typeof Symbol() // symbol
typeof null // object
typeof [] // object
typeof {} // object
typeof new Date() // object
typeof /test/gi // object
typeof function () {} // function

typeof 연산자로 null 값을 연산하면 null이 아닌 , object를 반환하기 때문에 사용에 주의해야 한다.
이것은 자바스크립트의 첫 번째 버전의 버그지만 , 기존 코드에 영향을 줄 수 있기 때문에 수정되지 못하고 있다. 따라서 값이 null 타입인지 확인할때엔 typeof 연산자보다 일치 연산자를 사용하는 것이 좋다.

  • 지수 연산자

    ES7에서 도입된 지우 연산자는 좌항의 피연산자를 밑으로 , 우항의 피연산자를 지수로 거듭 제곱하여 숫자 값을 반환하는 연산자이다.
2 ** 2; // 4
2 ** 2.5 // 5.65685424949238
2 ** 0; // 1
2 ** -2; // 0.25

지수 연산자의 결합 순서는 우항에서 좌항이다.

2 ** ( 3 ** 2 ); // 512

음수를 거듭제곱의 밑으로 사용해 계산하려면 괄호로 묶어야 한다.

-5 ** 2;
// SyntaxError: Unary operator used immediately before exponentiation expression
// Parenthesis must be used to disambiguate operator precedence
(-5) ** 2; // 25

지수 연산자는 다른 산술 연산자처럼 할당 연산자랑 함께 사용할 수 있다.
지수 연산자는 이항 연산자 중에서 우선순위가 가장 높다

var num = 5;
num **= 2; // 25

2 * 5 ** 2; // 50 
//5의 2제곱 x 2
  • delete 연산자

var o = { a : 1 };

delete o.a;
console.log(o); // {}
// delete 연산자는 객체의 프로퍼티를 삭제하는 부수 효과가 있다. 이는 o 객체를 사용하는 다른 코드에 영향을 준다

이웅모.2006.모던 자바스크립트 Deep Dive.위키북스

0개의 댓글