목록프로그래밍 언어/JavaScript (17)
하다보니
자료구조. 어떤 방식으로 데이터를 담느냐에 따라 타입이 다양하다. 오브젝트와 자료구조의 차이. 토끼와 당근은 오브젝트. 서로 연관된 특징과 행동을 묶어놓는 것을 말한다. 비슷한 타입의 오브젝트들을 묶어 놓는 것을 자료구조라고 한다. 동일한 타입의 오브젝트만 담을 수 있다. 자바스크립트는 타입이 동적으로 정의가 되기 때문에 다양한 타입을 담을 수 있다. 하지만 이러한 방식을 좋지 않다. 한 배열 안에는 동일한 타입을 넣는다. 인덱스로 접근해서 삽입과 삭제가 편하다. 1. 배열 - 배열의 선언과 원소 검색 // 1. Declaration const arr1 = new Array(); const arr2 = [1, 2]; // 2. Index position const fruits = ['🍎', '🍌']; c..
클래스는 연관있는 데이터를 묶어놓는 container같은 것. 클래스 안에는 속성(fields)와 행동(methods)가 있다. 클래스는 fields와 methods가 묶여 있는 것. 종종 클래스 안에 fields만 들어있는 경우가 있고 이것을 데이터 클래스라고 한다. 수많은 물체와 사물들을 클래스, 오브젝트로 정의해서 프로그래밍 하는 것이 편하고 유연하게 프로그래밍이 가능하다. 구현해야할 기능들을 객체로 잘 정의해서 만들 수 있는 개발자. 클래스는 틀을 말한다. template. 클래스 자체에는 값이 들어있지 않다. 한 번만 선언한다. 클래스를 사용하여 새로운 인스턴스를 생성한 것을 object라고 한다.object는 여러번 만들 수 있다. 클래스는 정의만 한 것이어서 실제로 메모리에 올라가지는 않지만..
절차적인 언어에서는 함수가 프로그램에서 굉장히 중요한 기능을 담당한다. 그런데 자바스크립트에는 class가 추가되어서 object oriented programming language가 아닌가??!!!!!? No. 이 클래스도 자바의 class처럼 pure한 object orient가 아니고 프로토타입을 베이스로 한 가짜의 object oriented이다. 따라서 JavaScript도 절차 지향 언어 중 하나로 볼 수 있다. function이 중요한 역할을 한다. function declaration function을 sub-program이라고도 한다. input을 받아 처리 후 output을 리턴하는 것이다. function은 한가지 일을 수행해야하고 동사형태로, command형태로 이름을 지정해야한다..
Operator 문자열 합치기 + numeric operators increment and decrement operators assignment operators Logical operators : || && ! -> or는 true가 나오면 멈춘다. or중에 하나라도 true면 true이기 때문이다. 따라서 연산이 많은 함수를 제일 앞에 두게 되면 안된다. 가벼운 것들을 앞에 두는 연습. and는 false가 나오면 멈춘다. 따라서 연산이 많은 함수를 뒤에서 확인하는 게 좋다. and는 null 체크에도 많이 쓴다. == : loose equality. '5'와 5를 동일하다고 출력한다. === : strict equality. 타입까지 똑같아야한다. '5'와 5는 다른 것. 따라서 코딩시 이것으로 ..
입력 연산 출력이 프로그램의 핵심! cpu에 최적화된 로직을 구현하고, 메모리의 사용을 최소화 하는 것도 중요하다. let ES6에 추가된 개념이다. 자바스크립트에서 변수를 선언할 수 있는 유일한 방법. var는 선언 전에 값을 할당할 수 있다. 심지어 값 할당 전에 출력도 할 수 있다. 에러가 발생하지 않는다는 것이다. 이것을 var hoisting이라고 한다. 또한 var는 block scope이 없다. 즉, block을 철저히 무시한다. 블록 안에 있어도 외부에서 접근이 가능하다. constant 변수를 이용하면 변수가 메모리 어딘가에 할당된 박스를 가리키고 있어서 포인터를 이용해서 값을 계속 바꿀 수 있었다. constants는 이 포인터가 잠겨있다. 그래서 값을 선언함과 동시에 할당한 뒤로는 절..
html 파일을 한 줄 씩 읽어가며 실행한다. 자바 스크립트 파일을 head 태그 안에 선언하면 스크립트 파일이 클 경우 시간 소요가 많다. 이것은 좋은 방법이 아니다. body 태그 끝에 스크립트 파일을 두는 것은 사용자가 기본적인 html 파일을 빨리 볼 수 있는 것은 장점이지만 만약에 자바 스크립트에 의존적인 웹사이트라면 정상적인 페이지 출력을 하기까지 시간 지연이 있다는 단점이 있다. async async는 boolean 타입의 값으로 선언만으로 true로 설정이 된다. async가 있으면 html 파싱과 함께 병렬로 자바 스크립트 파일을 다운 받는다. 장점은 js fetching이 html을 parsing하는 동안 일어나기 때문에 다운로드 받는 시간을 절약할 수 있다는 것이고 단점은 html이 ..
BOM이란 무엇인가? 웹 서비스 개발은 브라우저와 밀접한 관련이 있다. 모든 서비스는 웹 브라우저를 바탕으로 실행이 된다. 이 브라우저와 관련된 객체들의 집합을 브라우저 객체 모델(BOM:Browser Object Model)이라고 부른다. 이 브라우저 객체 모델(BOM)을 이용해서 Browser와 관련된 기능들을 구성한다. DOM은 이 BOM 중의 하나이다. 브라우저 객체 모델(BOM)의 최상위 객체는 window라는 객체이다. DOM은 이 window 객체의 하위 객체이기도 하다. DOM이란 무엇인가? 문서 객체 모델(The Document Object Model, DOM)은 HTML, XML 문서의 프로그래밍 interface이다. DOM은 Document Object Model의 약자이다. Doc..