본문 바로가기

개발58

[javascript] ES6 최신 문법 1 _ Symbol SymbolES6 이전의 자바스크립트 데이터 타입은 문자열, 숫자, 불리언, undefined, null, 객체 6가지 타입이 있었다. 심볼은 새롭게 도입된 7번째 데이터 타입으로 변경 불가능한 원시 타입의 값이다. 주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용한다. 심볼 값은 심볼 함수를 호출하여 생성하고, 이때 생성된 심볼 값은 외부로 노출되지 않아 확인할 수 없다. const symbol = Symbol('yeonmi');console.log(typeof symbol); //output: symbolconsole.log(symbol); //output: Symbol(yeonmi) 심볼에는 new 키워드를 붙이지 않고 생성하며, 괄호 안에 쓰는 것은 생성된 심볼 값에 대한 .. 2022. 10. 12.
[javascript] 동기vs비동기 들어가기에 앞서... 운영체제의 역할CPU 스케줄링과 프로세스 관리: cpu 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다.메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마만큼 할당해야 하는지 관리한다.디스크 파일 관리: 디스크 파일을 어떠한 방법으로 보관할지 관리한다.I/O 디바이스 관리: I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리한다.프로세스의 메모리 구조스택: 지역변수, 매개변수, 함수가 저장되고 컴파일 시에 크기가 결정된다.힙: 힙은 동적 할당할 때 사용되며 런타임 시 크기가 결정된다.데이터 영역: 데이터 영역은 전역변수, 정적변수가 저장되고, 정적인 특징을 갖는 프로그램이 종료되면 사라지는 변수가 들어 있는 영역이.. 2022. 10. 10.
[javascript] 호이스팅(hoisting)과 일시적 사각 지대(TDZ) + var, let, const var, let, const자바스크립트에서 변수를 선언하는 키워드는 세 가지이다. var는 최근 사용을 지양하는 키워드이지만 javascript info의 문구를 그대로 가져와 표현하자면 '오래된 스크립트에서 당신을 기다리고 있는 괴물 같은 존재'이다. 우선, var는 블록 스코프가 없다. 블록 스코프가 없다는 것은 블록 밖에서도 var에 접근할 수 있다는 말이다.if (true) { var test = true;}alert(test); // true(if 문이 끝났어도 변수에 여전히 접근할 수 있음) var는 변수의 중복 선언도 가능하다.var user = "Pete";var user = "John"; // 이 "var"는 아무것도 하지 않습니다(이전에 이미 선언됨).// ...에러 또한 발생하지 않.. 2022. 10. 5.
[javascript] 실행 컨텍스트(Execution context)와 클로저(Closure) 실행 컨텍스트란?실행 컨텍스트는 스코프, 호이스팅, this, 클로져 등의 동작원리를 담고 있는 자바스크립트의 핵심원리이다. 이는 실행 가능한 코드를 형상화하고 구분하는 추상적인 개념, 즉 실행 가능한 코드가 실행되기 위해 필요한 환경이라고 할 수 있다. 실행 가능한 코드란 전역 코드와 함수 코드를 말한다. 자바스크립트가 실행될 때 우선적으로 전역 실행 컨텍스트가 만들어지며 함수가 실행될 때 함수 실행 컨텍스트가 만들어져 쌓인다. 자바스크립트 엔진이 코드를 실행하기 위해 필요한 정보는 변수 / 함수 선언 / 스코프 / this가 있다.let x = 'global x';let y = 'global y';function outer() { let z = 'local z'; console.log('o.. 2022. 10. 4.
[javascript] prototype과 __proto__ Prototype이란?생성자 함수 Object는 내장 객체 생성자 함수인데, 이 생성자 함수의 prototype은 다양한 프로퍼티나 메서드가 구현되어 있는 객체를 참조한다. 이 Object 생성자 함수로 만들어진 객체는 [[Prototype]]이라는 숨김 프로퍼티를 갖는다. 이 숨김 프로퍼티 값은 null이거나 다른 객체에 대한 참조가 되는데, 다른 객체를 참조하는 경우 참조 대상을 프로토타입 객체 또는 프로토타입이라고 부른다. 일반적으로 부모 객체를 참조하게 되며 프로퍼티 또는 메서드를 상속받는다고 표현한다. obj의 프로퍼티나 메서드에 접근하려고 할 때, obj에 접근하려는 프로퍼티나 메서드가 없다면 [[Prototype]]이 가리키는 링크를 따라 자신의 부모 역할을 하는 Object의 프로퍼티나 .. 2022. 10. 3.