객체지향 프로그래밍에서 살펴보았듯이 객체 는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조다. 동작을 나타내는 메서드는 자신이 속한 객체의 상태, 즉 프로퍼티를 참조하고 변경할 수 있어야 한다. 이때 메서드가 자신이
자바스크립트 객체는 다음과 같이 크게 3개의 객체로 분류할 수 있다.표준 빌트인 객체는 ECMAScript 사양에 정의된 객체를 말하며, 애플리케이션 전역의 공통 기능을 제공한다.표준 빌트인 객체는 ECMAScript 사양에 정의된 객체이므로 자바스크립트 실행 환경(브
앞서 '\*\*객체 리터럴(https://velog.io/@junh0328/DEEP-DIVE-%ED%95%9C-%EC%9E%A5-%EC%9A%94%EC%95%BD-%EA%B0%9D%EC%B2%B4'객체 리터럴' 이외의 객체 생성 방법에 대해 알아본다.생성자 함
let, const 키워드와 블록 레벨 스코프 ① var 키워드로 선언한 변수의 문제점 ES5까지 변수를 선언할 수 있는 유일한 방법은 var 키워드를 사용하는 것이었다. var 키워드로 선언된 변수는 다음과 같은 특징이 있다.다른 언어와는 구별되는 독특한 특징으로
전역 변수의 무분별한 사용은 위험하다. 전역 변수를 반드시 사용해야 할 이유를 찾지 못한다면 지역 변수를 사용해야 한다. 이번 장에서는 전역 변수의 문제점과 전역 변수의 사용을 억제할 수 있는 방법을 알아본다.지역 변수의 생명 주기변수는 선언에 의해 생성되고 할당을 통
스코프(scope, 유효범위) 는 자바스크립트를 포함한 모든 프로그래밍 언어의 기본적이며 중요한 개념이며, 스코프의 이해가 부족하면 다른 개념을 이해하기 어려울 수 있다. 더욱이 자바스크립트의 스코프는 다른 언어의 스코프와 구별되는 특징(렉시컬 스코프, 정적 스코프)이
에러가 발생하지 않는 코드를 작성하는 것은 불가능하다고 볼 수 있다. 발생한 에러에 대해 대처하지 않고 방치한다면 프로그램을 강제 종료될 것이다.try catch 문을 사용해 발생한 에러를 적절하게 대응하면 프로그래밍이 강제 종료되지 않고 계속해서 코드를 실행시킬 수
사실 async await가 제너레이터에서 비롯되었다는 것 조차 몰랐다. 기존 한 장 요약 (프로미스) 에서도 말했지만, async await에 대해 조금 더 아는 이유는 단지 Promise 문법이 어려워서였다.then().catch().finally()와 같은 프로미
new Promise ? 이게 뭐야 ... async/await(?) 이거 쉽네..! 이걸로 그냥 써야지필자는 이런식으로 비동기 프로그래밍에 대한 이해를 덜 한 상태에서 async await로 바로 넘어가 작업을 시작하였다. async <-> await를 기반으로
'저는 REST API를 바탕으로 백엔드 서버와 ... 어쩌구'위와 같은 말들을 나의 자기 소개서에 많이 적어냈다. 대충 무슨 느낌인지는 알 것 같았다. HTTP 요청을 보낼 때, 백엔드와 합의하에 HTTP 요청을 맞춰 HTTP REQUEST를 보내는 느낌으로 얼추 이
Ajax(Asynchronous JavaScript and XML)란 자바스크립트를 사용하여 ① 브라우저가 ② 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수신하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다.Ajax는 브라우저에서 제공
비동기 프로그래밍 동기 처리와 비동기 처리 자바스크립트 엔진은 기본적으로 함수를 호출하면 ① 함수 코드가 평가되어 함수 실행 컨텍스트가 생성된다. 이때 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택(콜 스택이라고도 부름)에 푸시되고 ② 함수 코드가 실행된다.
함수를 명시적으로 호출하면 함수가 즉시 실행된다.만약 함수를 명시적으로 호출하지 않고 일정 시간이 경과된 이후에 호출되도록 함수 호출을 예약하려면 타이머 함수를 사용한다. 이를 호출 스케줄링(scheduling a call)이라 한다.자바스크립트는 ① 타이머를 생성할
자바스크립트가 제공하는 7가지 데이터 타입(숫자, 문자열, 불리언, null, undefined, 심벌, 객체 타입) 은 크게 ① 윈시 타입과 ② 객체 타입으로 구분할 수 있다. 데이터 타입을 ① 원시 타입과 ② 객체 타입으로 구분하는 이유는 무엇일까? 원시 타입과 객