프로그래밍 공부/Javascript 79

TIL 4일차 2021.08.26

오늘 배운 것 1. 반복문 같거나 비슷한 코드를 여러 번 실행시켜야 할 경우에 쓰는 구문 ex) for문, while문 for문 반복할 조건을 1)초기화, 2)조건식, 3)증감문 순으로 넣어준다 let sum = 0 // 1)초기화; 2)조건식; 3)증감문 for (let n = 1; n < 5; n++) { sum += n; } console.log(sum); // 10while문 반복할 조건 중, 초기화, 증감문은 따로, 조건식만 괄호 안에 넣어 준다. 사항에 따라 초기화, 증감문은 필요없다. let sum = 0; let n = 1; // 초기화 while(n < 5) { // 조건식 sum += n; n++; // 증감문 } console.log(sum); // 102. Math 메서드 Numbe..

TIL 3일차 2021.08.25

오늘 배운 것 1. 문자열 다루기 1) 문자열 index string[index]를 통해 해당 index의 값을 알 수 있다. 하지만 접근만 가능할 뿐 변화는 줄 수 없다. (read-only) 모든 string method는 immutable 하다. 즉, 원본이 변하지 않는다. let str = &#39;CodeStates&#39;; console.log(str[0]); // &#39;C&#39; console.log(str[3]); // &#39;e&#39; console.log(str[10]); // undefined str[0] = &#39;K&#39;; console.log(str); // &#39;CodeStates&#39;2) + 연산자 사용 가능 string 타입과 다른 타입을 + 해주면,..

TIL 2일차 2021.08.24

오늘 배운 것 1. 변수 프로그래밍은 데이터 처리를 하는 것이다. 컴퓨터에는 &#39;메모리&#39;라는 데이터 보관함이 존재하는데 이 보관함의 크기는 동일하다. 변수는 각 보관함의 이름을 의미한다. (간단한 변수들는 콜 스택에 저장된다.) 즉, 데이터의 이름표(이름이 붙은 값)이다. 이 이름표를 이용해 데이터를 효율적으로 사용할 수 있다.(재활용) How to use 1) 보관함 확보(선언 declaration) let age;2) 보관함에 데이터 저장(할당 assignment) age = 12; // 등호 기호는 &#39;같다&#39;라는 의미가 아닌 &#39;데이터의 할당&#39;(저장)을 의미한다.3) 선언과 할당은 동시 사용 가능 let age = 12;2. 타입 변수에 담을 수 있는 데이터는 ..

TIL 1일차 2021.08.23

오늘 배운 것 1. 수도코드 프로그래밍 언어로 코드를 작성하기 전, 어떤 과정을 통해 만들지 사람의 언어로 먼저 작성하는 것 // 1. 만약 나이가 18세 이상이면 // 2. true를 반환한다. // 3. 아니면 // 4. false를 반환한다. if (age >= 18) { return true } else { return false }2. 페어 프로그래밍 짝궁과 함께 진행하는 코딩. 동료와 함께 협업하는 것을 연습하는 훈련 방식. 페어 프로그래밍을 통해 실무에 필요한 커뮤니케이션과 협업 능력을 기르고 상호보완 하는 효과를 갖는다. 페어 프로그래밍의 2가지 역할 네비게이터 문제 해결을 위한 전체적인 방향 제시한다. 코드를 직접적으로 알려주지 않고 드라이버 스스로 해답을 찾도록 유도한다. 드라이버 네비..

표현식과 문

1. 값 값은 표현식이 평가되어 생성된 결과. 모든 값은 데이터 타입을 가지며 메모리에 2진수(비트)의 나열로 저장된다. 10 + 20; // 302. 리터럴 리터럴(Literal)은 사람이 이해할 수 있는 문자 또는 미리 약속된 기호(&#39;&#39;, ", ., [], {}, // 등)를 사용해 값을 생성하는 표기법(notation)을 말한다. 자바스크립트 엔진은 런타임에 리터럴을 평가해 값을 생성한다. 즉, 리터럴은 값을 생성하기 위해 미리 약속한 표기법이라 할 수 있다. 리터럴예시비고정수 리터럴100 부동소수점 리터럴10.5 2진수 리터럴0b01000010b로 시작8진수 리터럴0o101ES6에서 도입. 0o로 시작16진수 리터럴0x41ES6에서 도입. 0o로 시작문자열 리터럴'Hello' "Wo..

변수

1. 변수란? 애플리케이션에서는 데이터를 입력받아 처리하고 그 결과를 출력하는 것이 전부다. 변수는 프로그래밍 언어에서 데이터를 관리하기 위한 핵심 개념이다. 10 + 20 자바스크립트 엔진이 위 코드를 계산(평가)하려면 먼저 10, 20, +라는 기호(리터럴과 연산자)의 의미를 알고, 10 + 20이라는 표현식의 이미도 해석(파싱)할 수 있어야 한다. 컴퓨터는 CPU를 사용해 연산하고, 메모리를 사용해 데이터를 기억한다. 메모리는 데이터를 저장할 수 있는 메모리 셀의 집합체다. 셀 하나의 크기는 1바이트(8비트)이며, 컴퓨터는 1바이트 단위로 데이터를 저장(write)하거나 읽어(read) 들인다. 각 셀은 고유의 메모리 주소를 갖는다. 메모리 주소는 메모리 공간의 위치를 나타내며, 메모리의 크기만큼 ..

자바스크립트란?

자바스크립트의 탄생 1995년, 네스케이프 커뮤니케이션스(Netscape communications)는 웹페이지의 보조적인 기능 수행을 위한 경량 프로그래밍 언어를 도입, 이것이 바로 브렌던 아이크(Brendan Eich)가 개발한 자바스크립트. 1996년 3월, 자바스크립트는 넷스케이프 내비게이터에 탑재되었고 Mocha → LiveScript → JavaScript 순으로 이름이 명명되었다. 자바스크립트의 표준화 1996년 8월, 마이크로소프트는 자바스크립트의 파생버전인 JScript를 출시하고 인터넷 익스플로러(Internet Explorer) 3.0에 탑재했다. 하지만 JScript와 자바스크립트는 넷스케이프와 마이크로스프트는 자사 브라우저 시장 점유율을 높이기 위해 자사 브라우저에만 동작하는 기능..

프로그래밍

프로그래밍이란? 프로그래밍이란 컴퓨터에게 어떤 실행을 요구하는 커뮤니케이션이다. 프로그래밍에 앞서 무엇을 실행하고 싶은지, 해결해야 할 문제가 무엇인지를 명확하게 이해해야한다. 이것이 바로 문제 해결 능력이다. 대부분의 문제(요구사항)은 복잡하고 명확하지 않을 수 있다. 따라서 문제를 명확하게 이해하고 복잡한을 단순하게 분해하고 자료를 정리하고 구분해야 하며 순서에 맞게 행위를 배열해야 한다. 이런 실행을 요구하는 것은 사람이지만 실행을 하는 것은 컴퓨터이다. 즉 실행 주체는 컴퓨터이고 컴퓨터와 사람은 사고, 인지의 방식이 다르다. 따라서 문제 해결 방안을 고려할 때 컴퓨터의 입장에서 문제를 사고해야 한다. 이때 필요한 것이 Computeatinal thinking(컴퓨팅 사고, 컴띵)이다. 여기에는 논..

Map과 Set

Map과 Set 객체는 property name을 통해 이름이 있는 여러 값들을 묶을 때 활용할 수 있고, 배열은 index를 통해 순서가 있는 여러 값들을 묶을 때 유용하게 활용할 수 있습니다. 그런데 ES2015에서 객체와 비슷한 Map과 배열과 비슷한 Set이라는 데이터 구조가 새롭게 등장했습니다. Map Map은 이름이 있는 데이터를 저장한다는 점에서 객체와 비슷합니다. 하지만, 할당연산자를 통해 값을 추가하고 점 표기법이나 대괄호 표기법으로 접근하는 일반 객체와 다르게 Map은 메소드를 통해서 값을 추가하거나 접근할 수 있는데요. new 키워드를 통해서 Map을 만들 수 있고 아래와 같은 메소드를 통해 Map 안의 여러 값들을 다룰 수 있습니다. map.set(key, value): key를 이..

reduce()의 이해

Array.prototype.reduce() reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서 함수를 실행하고, 하나의 결과값을 반환한다. Syntax // Arrow function reduce((accumulator, currentValue) => { ... } ) reduce((accumulator, currentValue, index) => { ... } ) reduce((accumulator, currentValue, index, array) => { ... } ) reduce((accumulator, currentValue, index, array) => { ... }, initialValue) // Callback function reduce(callbackFn) reduce(c..