Javascript 6

실행 컨텍스트 (Execution Context)

정의 자바스크립트가 실행될 때 필요한 변수, 스코프의 정의, this 값 등이 정의되는 환경 종류 GEC (Global execution context) JS가 실행될때 맨 처음에 시작되는 실행 컨텍스트 JS 는 싱글 스레드이기 때문에 무조건 하나만 존재함 FEC (Functional execution context) 실행 컨텍스트는 함수마다 생길 수 있음 함수가 호출되고 실행될 때 만들어지는 실행 컨텍스트 Eval eval 함수가 실행될 때 만들어지는 실행 컨텍스트 execution context stack 콜스택과 비슷한 구조 실행 컨텍스트 생성 과정 Creation Phase Create the Activation object / Variable Object Activation object : 글로..

웹공부 2022.04.21

자바스크립트 - 일반 함수와 화살표 함수의 차이점

일반함수의 형태 const normal = function () { console.log('hello world'); } 화살표함수의 형태 const arrow = () => console.log('hello world'); 일반 함수와 화살표 함수의 차이 1.형태가 다르다. 보이는 것과 같이 화살표 함수는 =>와 같은 화살표가 붙어 함수를 시작한다. 또한 화살표 함수는 return 값이 한줄로 표현이 되는 경우에는 중괄호 {} 를 제외하고 작성이 가능하다. const returnArr = () => [1, 2, 3]; const returnObj = () => ({name: 'som'}); // 객체를 리턴할 경우에는 소괄호로 감싼다. 2.this 의 정의가 다르다. 일반(normal)함수의 경우에는 ..

웹공부/JS 2021.10.24

자바스크립트 - 데이터 타입 확인하기

자바스크립트에서는 typeof 를 사용하면 타입을 알 수 있지만 몇몇의 경우에는 Object라고만 나오고 정확한 데이터 타입이 무엇인지 알기 어렵다. console.log(typeof 'hello world!'); // string console.log(typeof 123); // number console.log(typeof true); // boolean console.log(typeof undefined); // undefined console.log(typeof null); // object console.log(typeof {}); // object console.log(typeof []); // object 조금 더 정확한 타입을 알고싶다면 typeof 대신에 다른 함수를 따로 ..

웹공부/JS 2021.10.24

객체 프로퍼티 - 프로퍼티 getter, setter

https://ko.javascript.info/property-accessors 프로퍼티 getter 와 setter 객체의 프로퍼티는 두 종류로 나뉜다. 데이터 프로퍼티(data property) : 지금까지 사용한 모든 프로퍼티는 데이터 프로퍼티이다. 데이터 프로퍼티 조작 장법에 대해선 모두 알고 있을 것이다. 접근자 프로퍼티(accessor property) : 새로운 종류의 프로퍼티. 접근자 프로퍼티의 본질은 함수인데, 이 함수는 값을 획득(get)하고 설정(set)하는 역할을 담당한다. 외부 코드에서는 함수가 아닌 일반적인 프로퍼티처럼 보인다. getter 와 setter let user = { name: "John", surname: "Smith", get fullName() { return..

웹공부/JS 2021.10.10

객체 프로퍼티 설정 - 프로퍼티 플래그와 설명자

https://ko.javascript.info/property-descriptors 객체 프로퍼티 객체에서 프로퍼티란 한 객체 내에 '키:값' 으로 구성되어 있는 것을 말한다. let user = { name: 'John', age: 30 }; '콜론(:)' 을 기준으로 왼쪽에는 키, 오른쪽에는 값이 위치한다. 프로퍼티 키는 프로퍼티'이름' 혹은 '식별자'라고 부른다. -> 첫번째 프로퍼티 - "name"(이름)과 "John"(값) -> 두번째 프로퍼티 - "age"(이름)과 30(값) 프로퍼티 플래그 객체 프로퍼티는 값(value)과 함께 플래그(flag)라 불리는 특별한 속성 세 가지를 갖는다. writable - true 이면 값을 수정할 수 있다. 그렇지 않으면 읽기만 가능. enumerable..

웹공부/JS 2021.10.10

러닝 자바스크립트 - 표현식과 연산자

0. 표현식이란? 표현식(expression) 값으로 평가될 수 있는 문, 즉 결과가 값인 문 표현식이 아닌 문(statement)은 일종의 지시 주로 무언가를 요청하고 그 결과를 명시적으로 반환하는 것 ⇒ 따라서 표현식은 값이 될 수 있고, 그 결과를 다른 표현식에 결합하여 다른값을 얻는 식으로 이어질 수 있다 let x; // 선언문 x = 3 * 5; // 표현식 ⇒ 첫번째 표현식은 3 * 5 이고, 곱셉표현식이며 결과는 15 이다. ⇒ 그 다음은 값 15를 x 에 할당하는 표현식이다. 할당은 그 자체가 표현식이다 let x, y; y = x = 3 * 5; 결과let x, y; // 선언문 y = x = 3 * 5; // 3 * 5 곱셈 표현식 y = x = 15; // x = 15 할당 표현식 ..

웹공부/JS 2021.09.08