JavaScript(13)
-
자바스크립트 개발자라면 알아야할 33가지 개념 #6 함수와 블록 스코프
#5는 ==, ===에 대한 이야기다. #3 내용만으로도 충분히 다뤘다 판단했기에 #5는 전체를 스킵하겠다. 궁금하다면 jake-seo님의 블로그를 읽어보는 것을 추천한다. 계속 나의 입맛대로 정리할 예정이다. 스코프(Scope) = 범위 현재 실행되는 컨텍스트를 말한다. 여기서 콘텍스트는 값과 표현식이 ** 표현 ** 되거나 참조될 수 있음을 의미한다. 만약 변수 또는 다른 표현식이 “해당 스코프” 내에 있지 않다면 사용할 수 없다. 전역 스코프(Global Scope) {} 안에 들어있지 않다면 우리는 그 변수를 전역 변수라 한다. const global = "I can see you everywhere" 전역변수는 어디에서든 불러 쓸 수 있다. 심지어 함수 내부에서도 const global = "I..
2022.10.19 -
자바스크립트 개발자라면 알아야할 33가지 개념 #5 == === 에대한 생략!
생략 !!
2022.10.19 -
자바스크립트 개발자가 알아야할 33가지 #4 암묵적 타입 변환
이번에도 역시 도입부분의 대해 생략하겠다. 이전에 #3에서 마지막 부분의 정리했던 부분과 일치하고 혼란을 불러일으킬 요소가 있어 (MDN기준으로 자료를 판단) 생략한다 도입부가 궁금하다면 jake-seo님의 블로그를 참조하길 바란다. 객체 자바스크립트에서 객체의 대부분의 암묵적 형변환은 결과 값으로 [object object]를 반환한다. "name" + {} // "name[object Object]" 모든 자바스크립트 객체는 toString을 메소드를 상속받는다. toString의 반환 값은 문자열 합치기(string concatencation)혹은 수학적 표현식 (mathematical expressions)와 같은 연산에서 쓰이게 된다. const foo = {} foo.toString() // ..
2022.10.19 -
자바스크립트 개발자 라면 알아야할 33가지 #3 값(Value)와 참조 (Refernce)
초반도입부분은 #2를 정리하면서 정리한부분의 일부분에 대한 이야기다. 그러므로 나는 초반도입부에 대해서는 생략을 하겠다. 궁금하면 jakeseo님의 블로그를 참조 하길 바란다. 참조 재할당 var obj = {first: 'reference'}; obj = {second: ref2 } 현재의 obj에는 참조값을 살펴보자 ? 참조값(메모리에서 객체의 위치를 가르킨다) 이런 상황에서 참조 값을 재할당 하면 참조값은 어떻게될까? 결론을 말하자면 obj안에 저장됐던 주소값은 변경된다. 그럼 첫번째 객체는? 메모리 상에 남게 된다. 아래 참고처럼 ? 그럼 객체가 남게되면 메모리가 부족하지않을까 생각 할수 있다. 남게 된다면 문제지만 자바스크립트 엔진 백그라운드내에선 가비지 컬렉터가 끊임없이 동작하고 있기 때문에 ..
2022.10.14 -
자바스크립트 개발자가 알아야 할 33가지 개념 #2 원시 타입(Primitive Type)
원시값과 참조값 Primitive Value - 단일데이터 - Copy by Value Strings, Numbers, Booleans, null, undefinded ,Symbol (ES6에 새롭게 추가됨) 원시 타입은 변하지 않는 (immutable) 속성을 갖는다. ? 원시 타입은 자신을 변경할 수 있는 메소드를 갖지 않기 때문이다. 작은 메모리가 사용되고 일반적으로 스택 메모리에 저장된다. 저장된 값을 이용하여 복사본을 만든다. ? 변수에 새로운 값을 할당하면 변수가 참조하는 메모리공간의 주소가 바뀐다. Object- 복합데이터 - Copy by Reference All other object 더 많은 메모리를 차지하고 보통 힙으로 저장된다. 저장된 메모리 공간을 복제한다. 변수가 가지고 있는 메..
2022.10.12 -
자바스크립트 개발자가 알아야할 33가지 #1 콜스택 정리
자바스크립트는 하나의 스레드로 단 1개의 동시성만 다루는 언어이다. 이것의 의미하는 것은 자바스크립트가 한 번에 1개의 작업 만 다룰수 있다는 이야기다. 자바스크립트는 힙, 큐 와 함께 구성하는 단일 콜스택을 갖는다. 이것은 V8 내부에 구현되어있다. CALL Stack(호출스택) 작업이 요청되면(함수가 호출) 요청된 작업은 순차적으로 Call Stak에 쌓이게 되고 순차적으로 실행된다. 자바스크립트는 단 하나의 Call Stack을 사용하기 때문에 해당 task가 종료하기 전까지는 다른 어떤 task도 수행될 수 없다. Heap 동적으로 생성된 객체 인스턴스가 할당되는 영역이다. WebAPI JS는 싱글쓰레드 이기때문에 멀티태스킹이 불가능하다. 브라우저가 역할을 나눠 담당하여 멀티태스킹이 되는것처럼 보..
2022.10.11