JS는 브라우저에서 사용하기 위해 개발된 주요 언어임, 바로 브라우저 위에서 동작해서 쓸 수 있음브라우저의 다양한 상호작용 및 유저를 위해서 처리가 됨, 그만큼 많은 동작처리를 차지함HTML은 문서임, 이 문서 안에 CSS & JS가 같이 있는 것을 실행시키는 것임브라
SyntaxError의 경우 문법이 잘못됐을 때의 에러임문법은 마치 언어처럼 문장을 구성하는 요소가 있듯이 JS 언어 자체의 대한 것임키워드, 변수, 값, 문, 함수, 객체, 배열, 스코프 등의 문법을 지켜야 한다는 것사람이 이해하기 위해 작성하는 코드라고 볼 수 있음
JS는 굉장히 느슨한 동적 타입의 언어임프로그램 처리 과정이 런타임 시점에서 자동으로 파악되기 떄문에 그럴 때 보는 타입에서만 보임그래서 타입을 할 때 굉장히 조심해서 다뤄야함타입은 보통 원시값(Primitive)과 객체타입(Reference) 2가지로 나뉘어짐참고자료
Boolean 타입은 True, False 2개이고 이를 Flag로 쓰기도 함(On-Off로 구분)이 때, 형 변환의 경우도 래퍼 객체(Boolean)으로 하면 변환도 가능함그리고 !, !!를 통해서 Boolean으로 변환가능논리적인 흐름을 제어할 때, True-Fal
JS는 기본적으로 숫자에 있어서 IEEE 754라는 부동소수점을 기준으로 숫자값을 처리함사람은 정수로 생각하고 컴퓨터는 2진수로 생각하기 떄문에, 이를 위해서 부동소수점 방식으로 컴퓨터가 사람이 쓴 값에 대해서 이해를 함그 외에, 16진수(0xFF), 지수(5e2) 등
문자열은 아래의 예시처럼 다양하게 간단하게 만들 수 있음앞서 간단하게 선언해서 만들고 내부의 내장 객체의 다양한 문자열을 다룰 수 있는 메소드를 쓸 수 있음다양한 내장 객체를 쓸 수 있음참고자료문자열 변환은 아래와 같이 하면 어떤 값이어도 대부분 문자열로 원시 타입으로
할당 연산자는 우항에 있는 것을 좌항에 담는다고 생각하면 됨초기화를 하는 할당을 하는걸 권장함(선언과 할당 동시에 하는 습관을 들이자)3개의 피연산자를 취하고 일종의 조건 연산자라고 볼 수 있음(if문과 유사한 느낌으로)삼항 연산자의 경우 중첩으로도 쓸 수 있음그리고
JS의 배열은 객체이며, 인덱스와 값(index: value)을 연결하는 일종의 딕셔너리 형태임예시처럼 배열을 만들 수 있음인덱스는 0부터 시작함을 알면됨이는 JS도 객체이기 떄문에 속성을 가질 수 있기에 arr.prop도 가능한 것임, 객체의 속성 일부분으로 간주되는
함수는 다양하게 만들 수 있음, 함수는 반환문을 생략할 수 있지만 내부적으론 undefined를 리턴함함수 선언문의 경우, 아래와 같이 중복으로 함수를 만들 수 있음, 이 때 마지막에 있는 것이 호출이 됨(혹은 값을 넣는 것에 따라서)이럴 때 함수 표현식을 통해서 만든
브라우저에서 열리는 문서이면서 HTML, Mark Up언어로 이루어져 결국 브라우저에서 확인하면 이 문서 단위로 문서를 확인할 수 있음이러한 구조를 구성하는데 있어서 시맨틱 태그를 권장함, 의미론적인 문서를 써야, 그 의도가 명확해짐구조화 된 태그를 쓰고 익숙해지고 지
리터럴 방식으로 간단하게 아래와 같이 key-value 쌍으로 객체를 만들 수 있음, 메소드도 가능함for in 문을 통해서 객체를 열거할 수 있음객체의 경우, 본인의 값을 찾기 위해서 스코프를 계속 체이닝처럼 따라감이를 방지하고자 hasOwnProperty 메소드를
데이터 구조에 있어서, 객체 안에 객체, 그 객체 안에 배열 또 배열 안에 객체등 아래 예시와 같은 어지러운 구조가 흔함Object.keys는 객체의 키들 인자로 넣은 것을 배열로 반환시켜줌, 일반적인 반복문과 동일한 순서로 순회되어 열거를 해 줌참고자료Object.v
함수 스코프 & 블록 스코프는 지역 스코프라고 볼 수 있음전역 스코프는 Global이라고 하는데, 가장 바깥쪽에 있는 부분임, 어디서든 접근이 가능하나 그만큼 어디서든 수정도 가능함을 의미함(값이 똑같을 거라는 보장이 없음)이로 인해서 예측하기가 상당히 어려워짐, 프로
HTML 문서를 주고 받을 때의 통신 프로토콜임(프로토콜은 일종의 통신 규약)브라우저에 돌아가는 HTML 문서는 해당 URL을 접속하면 다양한 과정을 통해서 문서를 서버에서 줌문서를 요청하면 그에 맞는 구글에서 서버에서 문서를 줌HTTP 통신으로 서버에 요청하고 처리를
this는 스코프와 관계가 있음, JS는 함수, 배열, 일반적인 객체를 다 객체로 보는데, this가 어디에 묶여있는지를 아는 것에 따라서 처리하고 활용도가 다름this가 의도와 다르게 호출되고 동작할 수 있기에 bind 메소드를 활용해서 처리하는 경우도 있음참고자료N
JS는 내부적으로 프로토타입 기반으로 돌아간다고 해도 무방함(즉, 프로토타입 기반 언어임)\_\_proto\_\_로 접근시, 프로토타입과 관련하여 많은 것을 볼 수 있음(각 타입에서 접근해서 확인할 수 있음)어떤 값을 만들어도 내부적으로 프로토타입을 가지고 있고, 그래
Class의 경우 프로토타입 기반으로 동작을 함, class 키워드를 사용하고 생성자에 대해선 constructor 메소드를 통해서 할 수 있음함수 표현식 & 선언 모두 클래스에서 사용할 수 있음Class를 사용해도 결국 내부적으로는 프로토타입 기반으로 사용되서 활용되
시점을 기억, 바인딩한다는 느낌은 아래의 예시도 마찬가지임클로저는 이런식으로 어휘적인 환경을 기억시켜 놓을 수 있는 함수임위를 화살표 함수로도 줄여 쓸 수 있음결국, 클로저는 이전 환경을 기억해두고, 캡쳐시켜놓을 수 있는 함수 기법임, 클로저를 억지로 쓸 필요는 없지만
Synchronous는 동기라고 하고 순차적으로 흐르는 케이스임, Asynchronous의 경우 비동기로 순차적인게 아닌, 실행 순서와 실행 Flow가 동시에 즉 병렬적으로 흐르는 케이스임JS는 비동기 처리를 하는 경우가 많음동기는 결국, 코드가 그대로 쭉 실행되는 것
만약 비디오 태그를 클릭하게 된 경우, 이벤트 버블링과 이벤트 캡처링이 나타남이 때 이벤트 버블링의 경우, video 태그를 클릭했어도 그 상위 태그의 해당 이벤트를 전파하는 것을 말함이벤트 캡처링의 경우, html, body 등 상위 태그의 이벤트를 클릭 했을 때 하
JS와 브라우저가 진행되는 시점에 이벤트 루프가 돌아감이벤트 루프는 비동기 방식으로 동시성을 지원하는 방법임, JS엔진은 한 번에 한 개의 코드만 실행할 수 있음, 하지만 사용되는 환경은 동시에 많은 작업이 처리됨그래서 이에 대해서 이벤트 루프를 통해서 동시성을 지원하
모듈은 독립적인 특성을 가진 기능 단위의 부품프로그램의 기능을 독립적인 부품으로 분리한 것, 동시에 여러 다른 모듈과 함께 조합하여 재사용될 수 있음여기서 중요한 것은 내가 만든 코드가 어떻게 재활용 할 수 있는가도 중요함예전에는 즉시 실행함수, 클로저등으로 모듈로 응
예외를 처리하는 방법, 특정 문 실행시 에러가 발생한다면 나머지 코드를 계속 실행하는 것은 의미가 없음그래서 이러한 예외를 처리해서 우회하는 방법이나 다양하게 처리를 하는 것, 사용자에게 예외 사항을 알려주는 경우도 포함기본적으로 에러를 다룰 때 try-catch 구문