javascript - core - 연산자

yj k·2023년 4월 14일

javascript

목록 보기
4/18

1. comparison-operator

비교 연산자

  1. 동등 비교 (==, !=) : 암묵적 타입 변환을 통해 타입 일치 시킨 후 같은 값인지 비교

  2. 일치 비교 (===, !==) : 타입과 값이 모두 일치하는지 비교


  • NaN
    NaN은 자신과 일치하지 않는 유일한 값이다.
    빌트인 함수 Number.isNaN을 사용해서 확인해야 한다.
빌트인 함수 : 자바스크립트에 이미 정의되어있는 함수

console.log(`NaN == NaN : ${ NaN == NaN }`);
console.log(`NaN === NaN : ${ NaN === NaN }`);

// Number.isNaN 사용
console.log(`Number.isNaN(NaN) : ${ Number.isNaN(NaN) }`);



  • 문자열끼리 비교
    비교 연산자를 통해 문자열끼리 비교도 가능하며 유니코드 순으로 비교한다.
// 일치 비교 연산자
console.log(`'hello' === 'hello' : ${ 'hello' === 'hello' }`);
console.log(`'hello' !== 'hello' : ${ 'hello' !== 'hello' }`);

// 대소 비교 연산자
console.log(`'apple' < 'banana' : ${ 'apple' < 'banana' }`);
console.log(`'apple' > 'banana' : ${ 'apple' > 'banana' }`);
console.log(`'cat' < 'Zoo' : ${ 'cat' < 'Zoo' }`);
console.log(`'cat' > 'Zoo' : ${ 'cat' > 'Zoo' }`);



2. logical-operator

short-circuit-evaluation

단축 평가 : 표현식을 평가하는 도중 평가 결과가 확정 된 경우 나머지 평가 과정을 생략하는 것

단축 평가를 활용하면 if문을 대체할 수 있다.

var num = 2;

if(num % 2 == 0) {
    console.log('짝수');
} else {
    console.log('홀수');
}

num % 2 == 0 && console.log('짝수');
num % 2 == 0 || console.log('홀수');

객체를 가리키기를 기대하는 변수가 null 또는 undefined가 아닌지 확인하고, 프로퍼티를 참조할 때 단축 평가를 유용하게 사용할 수 있다.

var obj = null;

// TypeError: Cannot read properties of null (reading 'value')
// var val = obj.value;

  • obj가 Falsy(null, undefined) 값이면 좌항만 실행하여 val -> null
  • obj가 Truthy 값이면 val -> obj.value
    var val = obj && obj.value;
var val = obj && obj.value;



3. ES11-operator

optional-chaining-operator

ECMAScript(2020) (?) : ES11에서 도입 된 연산자
좌항의 피연산자가 null 또는 undefined인 경우 undefined를 반환하고
그렇지 않으면 우항의 프로퍼티 참조를 이어간다.

var obj = null;
// var val = obj.value;
var val = obj?.value;
console.log(val);

옵셔널 체이닝 연산자 이전에는 논리 연산자 &&를 사용한 단축 평가를 활용했었는데 빈 문자열과 같은 Falsy 값을 false 취급해서 생기는 문제가 있다.

var str = '';
var len = str && str.length;
console.log(len);
var len2 = str?.length;
console.log(len2);



nullish-coalescing-operator

null 병합 연산자 (??) :
좌항의 피연산자가 null 또는 undefined인 경우 우항의 피연산자를 반환하고,
그렇지 않으면 좌항의 피연산자를 반환한다.
변수에 기본 값을 설정할 때 유용하다.

var obj = null;
var test = obj ?? '기본 값';
console.log(test);

null 병합 연산자 이전에는 논리 연산자 || 를 사용한 단축 평가로 변수에 기본 값을 설정할 수 있었다.
단, 빈 문자열과 같은 Falsy 값을 false로 취급해서 생기는 문제가 있다.

var val = '' || '기본 값';
console.log(val);
var val2 = '' ?? '기본 값';
console.log(val2);



조건문

java와 동일하게 사용한다.

0개의 댓글