JS 연산자

gang_shik·2025년 3월 15일
0

JavaScript

목록 보기
7/23

할당 연산자

  • 할당 연산자는 우항에 있는 것을 좌항에 담는다고 생각하면 됨
  • 초기화를 하는 할당을 하는걸 권장함(선언과 할당 동시에 하는 습관을 들이자)
// 이미 선언된 변수에 할당
let x;
x = '';

// 변수를 선언 & 할당 => 초기화
const y = '';

// 다양하게 할당
const obj = {};
obj.prop1 = '';
obj.prop2 = {};
obj.prop3 = [];
obj.prop4 = function () {};

const arr = [];
arr[0] = 0;
arr[1] = 1;

삼항 연산자

  • 3개의 피연산자를 취하고 일종의 조건 연산자라고 볼 수 있음(if문과 유사한 느낌으로)
const val = (조건) ? 참일때 : 거짓일때

let val2;

if (조건) {
  val2 = 참일때;
} else {
  val2 = 거짓일때;
}
  • 삼항 연산자의 경우 중첩으로도 쓸 수 있음
  • 그리고 조건의 경우 그 안에 값 & 식만 들어올 수 있음
const age = 20;
const isAdult = age >= 20 ? '성인' : '미성년자';

비교 연산자

  • 이상, 초과, 이하, 미만만 기억해도 충분함
  • 비교할 때는 두 항을 하는데 좌항에는 비교 대상 우항에는 비교할 값을 넣는것을 권장함(대상 < 비교할 값)
const age = 20;

// age가 10미만일 때
if (age < 10) {
}

// age가 10 초과일 때
if (age > 10) {
}

// age가 10 이상일 때
if (age >= 10) {
}

// age가 10 이하일 때
if (age <= 10) {
}

typeof

  • 값은 Primitive 원시 타입과 Reference 참조 타입이 있는데, 이에 대해서 typeof를 통해서 타입을 구분하고 파악할 수 있음
  • 피연산자를 typeof 뒤에 붙이면 이에 대한 타입을 반환함(변수에 담긴 값도 포함)
const str = 'string';
const func = function () {};

typeof str; // 'string'
typeof 123; // 'number'
typeof 1n; // 'bigint'
typeof true; // 'boolean'
typeof Symbol(); // 'symbol'
typeof undefined; // 'undefined'
typeof func; // 'function'

// 배열, 객체, null, 래퍼객체 사용한 경우 object로 나옴(래퍼런스 객체와 래퍼객채로 만드는 것은 object로 취급함)
typeof []; // 'object'
typeof {}; // 'object'
typeof null; // 'object'
typeof new Boolean(true); // 'object'
  • null의 경우 'object'로 타입이 나오는데, 객체 타입의 경우 3비트 값임, 그래서 null일 경우 값에 판단을 3비트로 객체로 판단함
  • 이는 JS의 초기 오류라고 볼 수 있음(설계 오류), 이미 너무 많은 곳에서 써서 이를 수정하지 않음

instanceof

  • 객체의 instance인지 확인하는 함수, 이는 객체의 인스턴스가 어떤 생성자로 생성된 것인지 알 수 있는 함수임
  • {} instanceof Object 꼴로 쓰임
const obj = {};
const arr = [];
const func = function () {};
obj instanceof Object; // true
arr instanceof Array; // true
func instanceof Function; // true

undefined instanceof Object; // false
null instanceof Object; // false null은 원시값임을 알 수 있음(typeof는 객체였지만)
  • instanceof로 레퍼런스 객체를 비교하고 처리할 수 있음 하지만 Object 최상위 객체로 비교하면 다 true가 될 것임
  • 왜냐면 다 Object의 하위 체인으로 묶여있기 때문에 그럼

기타 연산자

  • ,도 연산자라고 할 수 있음, 우측의 값을 반환하다고 할 수 있음(모두 평가후, 하지만 헷갈리기에 쓰지 않는 것 추천)
123, 'ABC', true // true 반환
  • void 연산자의 경우, 표현식을 평가하고 undefined를 반환하는 연산자임
  • 함수의 경우에도 기본적으로 void 타입을 쓰고 반환값이 없는 함수를 쓰면 undefined를 반환하는 것임
void 1; // undefined
void 0; // undefined
void (10 + 10); // undefined

function voidFunction() {}

voidFunction(); // undefined
  • void는 표현식 결과를 버릴 때 사용함 JS에서 onClick 같은 것을 쓸 때 void를 넣어야 하는 경우가 있음
  • 반환이 없는 클릭을 사용할 때 void를 주로 썼음 그래서 void 연산자를 많이 썼었음
profile
측정할 수 없으면 관리할 수 없고, 관리할 수 없으면 개선시킬 수도 없다

0개의 댓글