자바스크립트
배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유?
배열, 객체를 const 키워드로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요. Const 변수에 할당된 값은 바뀌지 않지만, 배열/객체가 변수에 할당될 때에는 배열/객체의 요소(값) 자체가 아니라 주소(이 값은 불변, 상수)가 할당되기 때문입니다. const는 변하지 않는 상수constant 를 선언하는 키워드이며, 이 상수의 값은 재할당할 수 없으며 다시 선언할 수도 없습니다. 그러나 배열, 객체는 참조자료형reference data type이며, 참조 값은 변수에 주소를 할당합니다. (cf. 변수에 값을 직접 할당하는 원시자료형primitive data type) 숫자, 문자열 등의 원시 자료형은 stack 영역*에 값 자체가 저장되지만 배열, 객체, 함수 등의 참조자료형은 ..
[JavaScript] Koans를 풀며 배운 것들 정리
Koans란? Koans는 불교에서 유래된 단어로, 결론을 내리기 전에 이게 왜 맞는지 깊게 고민한다는 의미를 가지고 있다고 한다. 어떠한 화두를 가지고 고민하며 선문답을 나누며 수행하는 참선법인데, 이런 단어를 자바스크립트를 공부하면서 보게 되니 참신했다. 생각해보면 종교에서 깨달음을 얻기까지 걸리는 고행의 과정이나, 코딩 과정에서 부닥친 문제를 머리를 꽁꽁 싸매가며 해결하는 과정이나 둘 다 수행하는 자의 괴로움이 수반된다는 점에서 본질적으로 영 다른 것만은 아닌 것 같기도 하다. Type 1. 느슨한 동치 연산자(==) 사용 지양 - '=='는 두 값의 일치 여부를 느슨하게 검사하는데, 이는 '=='의 실행 중 타입 변환(type coercion)이 일어나기 때문이다. - 이에 따라 프로그램의 작동을..