js

    배열, 객체를 const로 선언했는데 요소나 속성을 추가할 수 있는 이유?

    배열, 객체를 const 키워드로 선언했는데 요소나 속성을 추가할 수 있는 이유에 대해서 설명해주세요. Const 변수에 할당된 값은 바뀌지 않지만, 배열/객체가 변수에 할당될 때에는 배열/객체의 요소(값) 자체가 아니라 주소(이 값은 불변, 상수)가 할당되기 때문입니다. const는 변하지 않는 상수constant 를 선언하는 키워드이며, 이 상수의 값은 재할당할 수 없으며 다시 선언할 수도 없습니다. 그러나 배열, 객체는 참조자료형reference data type이며, 참조 값은 변수에 주소를 할당합니다. (cf. 변수에 값을 직접 할당하는 원시자료형primitive data type) 숫자, 문자열 등의 원시 자료형은 stack 영역*에 값 자체가 저장되지만 배열, 객체, 함수 등의 참조자료형은 ..

    [JavaScript] Koans를 풀며 배운 것들 정리

    Koans란? Koans는 불교에서 유래된 단어로, 결론을 내리기 전에 이게 왜 맞는지 깊게 고민한다는 의미를 가지고 있다고 한다. 어떠한 화두를 가지고 고민하며 선문답을 나누며 수행하는 참선법인데, 이런 단어를 자바스크립트를 공부하면서 보게 되니 참신했다. 생각해보면 종교에서 깨달음을 얻기까지 걸리는 고행의 과정이나, 코딩 과정에서 부닥친 문제를 머리를 꽁꽁 싸매가며 해결하는 과정이나 둘 다 수행하는 자의 괴로움이 수반된다는 점에서 본질적으로 영 다른 것만은 아닌 것 같기도 하다. Type 1. 느슨한 동치 연산자(==) 사용 지양 - '=='는 두 값의 일치 여부를 느슨하게 검사하는데, 이는 '=='의 실행 중 타입 변환(type coercion)이 일어나기 때문이다. - 이에 따라 프로그램의 작동을..

    221025 #003 조건문, 문자열

    1. 오늘 코플릿을 풀면서 느낀 점 초반부에는 조건문과 문자열의 기본적인 연산자나 메서드 등이 숙지되어 있지 않은 상태여서 쉽게 솔루션을 생각해내기 어려웠다. 그래서 머리를 싸매느라 시간이 제법 걸려서 이번 코플릿 문제들이 완전 쉬웠다고는 못하겠다. 그렇지만 파트너와 함께 모르는 문제를 고민하면서 서로 문법 실수나 오타 등 자잘하게 놓치기 쉬운 실수도 발견하기도 하고 내가 생각하지도 못한 관점에서 문제를 볼 수 있다는 점은 좋았다! 그리고 몇몇 문제에서도 느꼈지만 코딩 초보로서 초반에 메서드나 객체의 대소문자, ( )괄호 안에 매개변수가 들어가는지, 메서드의 immutable 여부 등등을 제대로 기억해둬야 나중에 틀린 부분 찾느라 고생하지 않을 것 같다는 점!! 제대로 숙지해야겠다. 2. 오늘 배운 내용..