초기 컴퓨터 프로그램은 어셈블리어로 작성 되었다. 그러나 서로 다른 CPU 아키텍처가 등장 할 때 마다 매번 똑같은 프로그램을 서로 다른 어셈블리어로 작성하는 비용이 커지면서 고급 프로그래밍 언어의 필요성이 두각되었다.
해당 코드에서 10 + 20 이라는 값을 result 라는 변수에 담아주었다.변수에 값을 담는 다는 것은 무엇이고, 변수의 의미는 무엇일까 ? 컴퓨터가 10 + 20 이라는 값을 인식하기 위해서는 10, 20, + 라는 기호 (literal 과 operator) 의 의
값은 식(표현식)이 평가되어 생성된 결과를 말한다. 식을 해석해서 값을 생성하거나 참조하는 것모든 값은 데이터 타입을 가지며 메모리에 2진수값으로 저장된다.저장된 2진수 값은 데이터 타입에 따라 다르게 해석 될 수 있다.0100 0001 을 숫자로 해석하면 65지만 문
하나하나 세세하게 보고 필기하면서 공부했드니 손가락이 너무 아프다.엄청 중요한 파트에서만 빡세게 필기하면서 공부해야겠다.
제어문은 조건에 따라 코드블록을 실행하거나 반복 할 때 사용한다.일반적으로 코드의 실행은 위에서 아래 방향으로 순차적으로 실행되지만제어문을 이용하면 실행 흐름을 인위적으로 제어 할 수 있다
모든 값은 `데이터 타입` 을 갖는데 개발자의 의도에 따라 다른 타입으로 변환 할 수 있다.
자바스크립트는 객체 기반의 프로그래밍 언어이다. 이전에 배운 리터럴들인 숫자, 문자, 불리언 등의 타입은 단 하나의 값만 나타내지만객체는 다양한 타입의 값을 하나의 단위로 구성하는 복합적인 자료구조이다.
자바스크립트는 원시 타입과 객체 타입의 데이터 타입이 존재한다고 했다. 그럼 이 둘을 왜 구분할까 ? 뭐가 다를까 ? 그리고 얕은 복사와 깊은 복사에 대해 알아보자
함수는 일련의 과정을 문으로 구현하고 코드블록 {} 로 감싸서 하나의 실행 단위로 정의한 것을 의미한다.
스코프 (유효범위) 는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념이다.특히나 자바스크립트의 스코프는 다른 언어의 스코프와 구별되는 특징이 존재한다
전역 변수의 무분별한 사용은 위험하며, 반드시 사용해야 할 이유를 찾지 못한다면 지역 변수를 사용해야 한다.
이전까지 `var` 선언문을 통한 변수 선언에 대해 배웠다. `var` 선언문을 통한 변수 선언은 여러가지 문제를 가졌다.
객체에 `name : 'lee'` 라는 프로퍼티와 프로퍼티 값을 설정해두고 `getOwnPropertyDescriptor` 를 실행하면 `name` 프로퍼티와 관한 내용들이 담긴 객체가 반환된다. 이것이 의미하는게 뭘까 ?
이 때 각 변수들의 내부 메소드인 `constructor` 를 사용하면 뜬금없게도 [`Function` : `함수명`] 이 나타난다.
다음 같은 조건을 만족하는 객체를 일급 객체라고 한다. 함수도 일급객체이다
자바스크립트는 명령형 , 함수형, 프로토타입 기반, 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 이다.
자바스크립트 객체는 다음과 같이 크게 3개의 객체로 분류 할 수 있다.자바스크립트는 Object , String , Number , Array .... Json.Error 등 40여개의 표준 빌트인 객체를 제공한다
`메소드`는 다양한 객체들을 인수로 받을 수 있는데 그 중 메소드가 포함되어 있는 객체의 프로퍼티도 인수로 받을 수 있다. 그러면 ! 메소드는 어떻게 본인을 포함하고 있는 객체의 프로퍼티에 접근할까 ?
실행 컨텍스트를 통해 자바스크립트가 어떻게 스코프를 기반으로 코드를 실행하는지 알아보자
모던 자바스크립트 딥다이브 교재로 이해하고 MDN 까지 한 번 슈우우욱 훑고나서 정리하는 내용이다. 이전 파트의 실행 컨텍스트와 렉시컬 환경에 대해서 잘 이해했는지 , 어려운 개념인 것 같음에도 불구하고 이해가 좀 빠륵게 되었다.
자바스크립트는 프로토타입 기반 객체 지향 언어이다. 따라서 클래스가 필요 없는 객체 지향 프로그래밍 언어다. 하지만 다른 클래스 기반 객체지향 프로그래밍에 익숙한 프로그래머가 더 빠르게 학습 할 수 있도록 클래스 기반 객체지향 프로그래밍 언어와 유사한 새로운 객체 생
자주 사람들 코드를 보다보면 발견되는 화살표 함수를 이해하지 못했는데 이번 시간 덕에 이해 할 수 있게 됐다. > 사실 50% 이해했음 함수의 구분 ES6 이전까지 함수는 별 다른 구분 없이 다양한 목적으로 사용되었다. 생각해보면 callable 한 함수로도 사용
자바스크립트 배열은 배열이 아니다 아 왜 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Number , Date 단원도 있긴 하지만 해당 단원은 나중에 쓰면서 배우는게 더 많을 것 같기에 .. 넘어가자 정규표현식은 책을 보기도 했지만 드림코딩 정규표현식 와 수 많은 블로그들을 가장 많이 참조했다.
string 은 자주 쓸 거 같아서 정리한다String 객체는 표준 빌트인 생성자 함수 객체로 생성된 인스턴스를 의미한다.이 때 생성자 함수를 이용해서 생성해도 되고 리터럴 형태로 생성할 수 있다.
ES6 부터 도입된 새로운 빌트인 생성자 함수인 Symbol 아무리 MDN 문서를 읽어보고 용법을 읽어봐도 도저히 왜 필요한건지에 대한 이해가 힘들었다.그!래!서! 몇몇 유튜브와 블로그를 돌아가보며 이해하고 예시를 만들어봤다.
이전 Symbol 에서 iterator 에 대해서 가볍게 살펴보았다.전에 살펴보았던 iterator에 대한 내용을 조금 더 깊게 공부해보자
스프레드 문법은 말 그대로 이터러블한 자료구조들을 펼치는 문법이다
destructuring assignment 인 구조 분해 할당은 구조화된 배열과 같은 이터러블 또는 객체를 비구조화하여 1개 이상의 변수에 개별적으로 할당하는 것을 말한다. 이는 이터러블 또는 객체 리터럴에서 필요한 값만 추출 할 때 매우 유용하다. 배열 디스트
Set 객체는 중복되지 않는 유일한 값들의 집합이다.배열과 유사하지만 다음과 같은 차이가 존재한다.
대부분 프로그래밍 언어는 운영체제나 가상 머신 위에서 실행되지만 웹 애플리케이션 클라이언트 사이드 자바스크립트는 브라우저에서 HTML , CSS 와 함께 실행된다.따라서 브라우저 환경을 고려할 때 더 효율적인 프로그래밍이 가능하다.
DOM (Document Object Model) 은 HTML 문서의 계층적 구조와 정보를 표현하며, 이를 제어 할 수 있는 API, 즉 프로퍼티와 메소드를 제공하는 트리 자료구조이다.
가보자 가보자DOM 의 컬렉션 객체인 두 가지는 모두 여러 개의 결과값을 반환하기 위한 DOM 컬렉션 객체 이다.
`input` 노드에는 수 많은 프로퍼티들이 존재하는데 이 중 `attributes` 라는 프로퍼티에는 `NamedNodeMap` 이란 자료 구조 (유사배열 객체)에서 `프로퍼티`와 `value` 형태로 관리하고 있는 모습을 볼 수 있다.
브라우저는 처리해야 할 특정 사건이 발생하면 이를 감지하여 이벤트를 발생시킨다.예를 들어 클릭, 키보드 입력, 마우스 이동 등이 일어나면 브라우저는 이를 감지하여 특정 타입의 이벤트를 발생 시킨다. 하
.함수를 명시적으로 호출하면 함수는 즉시 실행되며, 컨텍스트에서 실행된 순에 따라 실행된다. 하지만 타이머를 이용한다면 다르다
이전 실행 컨텍스트 부분에서 이야기 하였듯 자바스크립트는 싱글 스레드 처리 방식으로 실행 컨텍스트에서 호출된 코드를 콜스택에 담고 처리 후에는 콜스택 에서 제거한다고 하였다. 만일 다음과 같이 존재할 경우 콜스택의 변화는 다음과 같다.
`Ajax` 는 2005년 구글 맵스에서 사용된 이후 폭발적으로 관심이 증가하였다.
RESTfull 한 API 가 도대체 뭔데 ~!!
ES6 이전 자바스크립트는 비동기 처리를 위한 하나의 패턴으로 콜백함수를 사용했다. 하지만 전통적인 콜백 패턴은 콜백 헬로 인해 가독성이 나쁘고 비동기 처리 중 발생한 에러를 처리하는데 한계가 있었다.
`async/await` 를 사용하면 비동기 코드를 우리에게 익숙한 동기 코드 처럼 작성 할 수 있다. 이로인해 가독성이 올라간다.
우선 두 차이점을 알기 위해서 몇 가지 스텝을 통해 먼저 기본 지식을 정리하고 가자 코드에서 데이터를 저장하고 조회 하는 방법 이전 포스트에서 말 했듯이 프로세스에서 실행 되는 코드는 해당 프로세스가 돌아가는 스레드 내부에서 정의된 레지스터들의 값과 다양한 연산기들을 통해 메모리에 저장된 값들을 조회, 저장 해나가며 실행 된다. [1] > 코드에서...
이야기에 들어가기 앞서 함수 선언식과 함수 표현식의 표기 방법의 차이만 가볍게 적고 들어가보자 우선 이정도만 머리 속에 집어넣고 하나씩 차례대로 알아가보자 선언식과 표현식 자바스크립트를 처음 공부 할 때 가장 먼저 배웠던 내용 같은데 막상 답하려고 하니 까먹어서 이것 저것 뒤져 공부해봤다. 우선 프로그래밍 언어를 이루는 모든 문들은 선언식과 표현식의...