본문 바로가기

전체 글65

13. 스코프 스코프 스코프란 식별자가 유효한 범위를 말한다. 모든 식별자는 자신이 선언된 위치에 따라 다른 코드가 자신을 참조할 수 있는 유효 범위가 정해진다. 식별자는 스코프 내에서 유일해야 한다. 만약 스코프가 없다면 식별자는 모든 프로그램내에서 유일해야 하고, 그렇지 않으면 충돌이 발생할 것이다. 또한 코드가 실행되어 식별자가 참조될 때 같은 이름의 식별자가 여러개 존재할 수 있다. 이때 어떤 식별자를 참조할지 결정해야 하는데, 식별자를 검색하는 규칙 또한 스코프를 통해 제공된다. 즉 스코프는 네임스페이스다. 스코프의 종류 구분 설명 스코프 변수 전역 코드의 가장 바깥 영역 전역 스코프 전역 변수 지역 함수 몸체 내부 지역 스코프 지역 변수 변수는 자신이 선언된 위치에 의해 자신이 유효한 범위인 스코프가 결정된.. 2022. 7. 10.
12. 함수 함수 프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것이다. 이때 함수의 역할은 입력을 받아서 정의된 일련의 과정을 실행하고, 반환값을 출력하는 것이다. 입력을 전달받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return value)이라 한다. 함수는 함수 정의를 통해 생성한다. 자바스크립트의 함수는 다양한 방법으로 정의할 수 있다. 함수를 실행하기 위해서는 필요한 입력, 즉 인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적으로 지시해야 한다. 이를 함수 호출이라 한다. 함수 호출의 실행 결과는 반환된 반환값이다. 함수는 객체 타입의 값이다. 함수를 사용하는 이유 함수는 코드의 재사용 측면에.. 2022. 7. 5.
11. 원시 값과 객체의 비교 자바스크립트에서의 데이터 타입은 크게 원시 타입과 객체 타입으로 구분할 수 있다. 원시 값은 변경 불가능한 값이다. 하지만 객체는 변경 가능한 값이다. 원시 값을 변수에 할당하면 변수에는 실제 값이 저장된다. 객체를 변수에 할당하면 변수에는 참조 값이 저장된다. 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다. 이에 비해 객체를 가리키는 변수를 다른 변수에 할당하면 원본의 참조 값이 복사되어 전달된다. 원시 값 변경 불가능한 값 원시 타입의 값은 변경 불가능한 값이다. 한번 생성된 원시 값은 읽기 전용으로 변경할 수 없다. 변경 불가능하다는 것은 데이터의 신뢰성을 보장한다. 여기서 변경 불가능 하다는 것은 메모리 공간에 저장된 값이 변경 불가하다는 의미이다. 변수는 할당을.. 2022. 7. 5.
10. 객체 리터럴 객체 원시 타입은 단 하나의 값만 나타내지만 객체 타입은 다양한 타입의 값을 하나의 단위로 구성한 복합적인 자료구조다. 원시 값은 변경 불가능한 값이지만 객체는 변경 가능한 값이다. 객체는 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다. 자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다. 따라서 함수도 프로퍼티 값으로 사용할 수 있다. 프로퍼티 값이 함수일 경우 일반 함수와 구분하기 위해 메서드라 부른다. 이처럼 객체는 프로퍼티와 메서드로 구성된 집합체다. 프로퍼티와 메서드의 역할은 다음과 같다. 프로퍼티: 객체의 상태를 나타내는 값 메서드: 프로퍼티(상태 데이터)를 참조하고 조작할 수 있는 동작 이처럼 객체.. 2022. 7. 4.
피드백 반영 업데이트 - 메뉴 등록 화면 개선 안녕하세요. 이번 주에는 사이드 프로젝트 '오늘 뭐 먹지?'를 오픈하고 주변 분들께 피드백을 받는 시간을 가졌습니다. 오늘은 피드백 사항 중, 메뉴 등록 화면의 불편 사항을 개선하는 업데이트를 진행하는 과정을 담아보려고 합니다. 피드백 사항 등록하기 화면에서 엔터를 누를 시 무조건 폼 제출이 되어서 불편했어요. (음식점 검색 인풋이 포커스되었을 때는 엔터했을 때 음식점을 검색하게 하는 건 어떨까요?) 음식점을 검색하고 지정하는 과정이 힘들었어요. (음식점을 검색했을 때 지도 영역 주변에 모든 검색 정보를 리스트로 보여주고 클릭 시 해당되는 마커를 선택할 수 있는 영역이 있으면 좋겠어요) 일부 음식점이 검색 시 나오지 않아서 불편했어요. (음식점 검색을 전반적으로 자동 완성 + 수동 지정을 할 수 있으면 .. 2022. 7. 4.
09. 타입 변환과 단축 평가 모든 값에는 타입이 있다. 값의 타입을 개발자가 의도적으로 변환하는 것을 명시적 타입 변환 또는 타입 캐스팅이라고 한다. 개발자의 의도와는 상관없이 표현식을 평가하는 도중에 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환되는 것을 암묵적 타입 변환, 타입 강제 변환이라고 한다. 자바스크립트의 원시 값은 변경이 불가능하다. 타입 변환이란 기존 원시 값을 변경하지 않고, 일시적으로 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것이다. 따라서 부수 효과는 없다. 암묵적 타입 변환이 일어나는 이유는 표현식을 가급적 에러 없이 평가하기 위해서다. 자바스크립트 엔진은 코드의 문맥에 따라 피연산자의 값을 암묵적 타입 변환하여 새로운 타입의 값을 만들어 한번 사용하고 버린다. 개발자의 의도가 명확히 드러나.. 2022. 7. 1.