본문 바로가기

전체 글65

08. 제어문 제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용한다. 일반적으로 코드는 위에서 아래 방향으로 순차적으로 실행된다. 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있다. 하지만 코드의 실행 순서가 변경된다는 것은 직관적인 코드의 흐름을 혼란스럽게 만든다. 함수형 프로그래밍 기법에서는 고차 함수를 적극 사용하여 제어문의 사용을 억제하여 복잡성을 해결하려고 노력한다. 자바스크립트에서도 여러가지 편리한 고차 함수를 제공하고 있다. 대표적으로 forEach, map, filter 등이 있다. 블록문 블록문은 0개 이상의 문을 중괄호로 묶은 것으로, 자바스크립트는 블록문을 하나의 실행 단위로 취급한다. 블록문은 단독으로 사용할 수도 있으나 일반적으로 제어문이나 함수를 정의할 때 사용한.. 2022. 7. 1.
07. 연산자 연산자는 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값(표현식)을 만든다. 이때 연산자의 대상을 피연산자라 한다. 자바스크립트가 제공하는 다양한 연산자에 대해 살펴보자. 산술 연산자 산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만든다. 산술 연산이 불가능한 경우, NaN을 반환한다. 산술 연산자는 피연산자의 개수에 따라 이항 산술 연산자와 단항 산술 연산자로 구분할 수 있다. 이항 산술 연산자 이항 산술 연산자는 2개의 피연산자를 산술 연산하여 숫자 값을 만든다. 모든 이항 산술 연산자는 피연산자의 값을 변경하는 부수 효과가 없다. 다시 말해, 어떤 산술 연산을 해도 피연산자의 값이 바뀌는 경우는 없고 언제나 새로운 값을 .. 2022. 7. 1.
06. 데이터 타입 데이터 타입은 값의 종류를 말한다. 자바스크립트의 모든 값은 데이터 타입을 갖는다. 자바스크립트는 7개의 데이터 타입을 제공한다. 이는 크게 원시 타입과 객체 타입으로 분류할 수 있다. 구분 데이터 타입 설명 원시 타입 숫자 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재. 산술 연산의 대상이 됨 문자열 문자열. 텍스트를 화면에 출력하기 위해 생성 불리언 논리적 참과 거짓 undefined var 키워드로 선언된 변수에 암묵적으로 할당되는 값 null 값이 없다는 것을 의도적으로 명시할 때 사용하는 값 심벌 ES6에서 추가된 7번째 타입. 다른 값과 중복되지 않는 유일한 값. 이름 충돌이 없는 유일한 프로퍼티 키 만들기 위해 도입됨 객체 타입 객체, 함수, 배열 등 숫자 타입 ECMAScript .. 2022. 6. 30.
05. 표현식과 문 값 값은 표현식이 평가되어 생성된 결과를 말한다. 평가란 식을 해석해서 값을 생성하거나 참조하는 것을 의미한다. 모든 값은 데이터 타입을 가지며 메모리에 2진수로 저장된다. 메모리에 저장된 값은 데이터 타입에 따라 다르게 해석될 수 있기 때문에 데이터 타입을 기억할 필요가 있다. 리터럴 리터럴은 사람이 이해할 수 있는 문자 또는 약속된 기호를 사용해 값을 생성하는 표기법으로, 값을 생성하기 위해 미리 약속한 표기법이라고 할 수 있다. 자바스크립트 엔진은 소스코드의 실행 단계에서 리터럴을 평가해 값을 생성한다. 정수, 문자열, 객체 등 다양한 종류의 값을 생성할 수 있다. 표현식 표현식은 값으로 평가될 수 있는 문이다. 즉, 표현식이 평가되면 새로운 값을 생성하거나 값을 참조한다. 리터럴은 값으로 평가되기.. 2022. 6. 30.
04. 변수 변수 프로그래밍 언어는 기억하고 싶은 값을 메모리에 저장하고, 저장된 값을 읽어 들여 재사용하기 위해 변수라는 매커니즘을 제공한다. 변수는 하나의 값을 저장하기 위해 확보한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위해 붙인 이름(식별자)을 말한다. 변수가 필요한 이유는 컴퓨터는 연산(CPU)과 기억(메모리)을 수행하는 부품이 나눠져 있다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체다. 각 셀은 고유의 메모리 주소를 갖는다. 이 메모리 주소는 메모리 공간의 위치를 나타낸다. 이 메모리 주소를 통해 값에 직접 접근하는 것은 오류를 발생시킬 위험이 있다. 또한 값이 저장될 메모리 주소는 코드가 실행될 때 메모리의 상황에 따라 임의로 결정된다. 자바스크립트는 개발자의 직접적인 메모리 제어를.. 2022. 6. 30.
사이드 프로젝트 오늘 뭐 먹지? 소개 안녕하세요. 1인 개발 프로젝트인 오늘 뭐 먹지? 서비스를 소개합니다. 평소에 만들어보고 싶었던 서비스를 혼자서 만들어 보았는데, 기획과 개발 파트로 나누어 소개하겠습니다. 기획 직장인들의 점심메뉴 선정 시 발생하는 커뮤니케이션을 돕는 서비스 매일 찾아오는 점심메뉴 선정 시간.. 쉽고 빠르게 결정할 수 없을까? 한 명 한명 먹고 싶은 메뉴를 묻고, 투표하는 과정이 번거롭게 느껴졌어요. 그 과정을 간소화, 자동화하는 서비스를 만들어보고 싶었습니다. 문제 정의 점심 메뉴 선정시 불편한(번거로운) 이유는 비슷한 질문과 답변이 매일 반복된다는 점에서 발생한다고 생각했습니다. 이에 대한 해결책으로 질문과 답변에 일정한 형식을 제공하여 사람이 직접 고민하고 행동할 부분들이 서비스 내에서 제공될 수 있도록 하는 방안.. 2022. 6. 16.