constJavaScript에서 `const`는 상수를 선언하는데 사용되는 키워드이다. `const`로 선언된 변수는 값의 "재할당이 불가능"하다. 이를 통해 변수의 "불변성을 보장"할 수 있다. 원시타입과 참조타입`const`로 선언된 원시타입변수는 더 이상 어떠한 변경도 불가능하다. `const`로 선언된 참조타입변수도 마찬가지로 변수 자체를 변경하는 행위는 불가능하다. 하지만 참조타입변수의 `속성값`들은 변경이 가능하다. 여기서 의문점이 하나 생겼다. "참조형변수 자체를 변경할 일은 없겠지만 속성을 변경할 경우가 생기면 `const`를 사용하면 안되지 않나? 시스템적으로는 문제가 없겠지만 협업시 다른 개발자가 괜히 헷갈리지는 않을까?" 라는 의문심이 들어서 아주 박학하신 분께 여쭤봤다. => ..
동등 비교(equality)와 일치 비교(identity)JavaScript는 두 값끼리 비교할 때 "동등 비교(==)"와 "일치 비교(===)"의 개념이 있다. 동등연산자(equality operator)동등연산자(`'=='`) 를 사용하면 두 값이 같은 값으로 변환 될 수 있는지를 검사한다. ex) `"3"` == `3` = `true``null`과 `undefined` 는 둘 다 "값이 없음" 을 나타내는 것으로 취급한다.고로 동등연산자를 사용하면 `true`가 나온다. 일치연산자(identity operator)일치연산자(`'==='`) 는 타입과 값을 모두 비교한다. ex) `"3"` === `3` = `false``null`과 `undefined` 는 타입은 다르기 때문에 `false` ..
PromisePromise는 비동기 작업을 보다 효율적으로 처리하기 위한 객체로 네트워크 요청을 보내거나 파일을 읽는 등의 비동기 작업을 처리할 때 사용된다. 이름이 Promise인 이유는 작업이 성공/실패 했을때 특정한 동작을 약속했기 때문에..? 사실 잘 모르겠다. Promise의 세 가지 상태`pending`(진행중): 작업이 진행중인 상태 `fulfilled`(완료): 작업이 완료된 상태 (성공)`rejected`(실패): 작업이 실패한 상태 Promise 객체 생성const promise = new Promise((resolve, reject) => { // 비동기 작업을 수행 const data = fetch('url 대충'); if (/* 작업 성공 조건 */) { reso..