본문 바로가기

javascript8

[JS] 실행 컨텍스트 실행 컨텍스트 실행 컨텍스트는 자바스크립트가 동작하는 원리라고 할 수 있습니다. 쉽게 말하면, 코드가 실행되는 환경이라고 보면 됩니다. 전역 컨텍스트 생성 후, 함수 호출 시마다 함수 컨텍스트가 생깁니다. 컨텍스트 생성 시 컨텍스트 안에 변수객체(arguments, variable), scope chain, this가 생성됩니다. 컨텍스트 생성 후 함수가 실행되는데, 사용되는 변수들은 변수 객체 안에서 값을 찾고, 없다면 스코프 체인을 따라 올라가며 찾습니다. 함수 실행이 끝나면 해당 컨텍스트는 사라지고, 페이지가 종료되면 전역 컨텍스트는 사라지게 됩니다. 실행 컨텍스트 스택 코드가 실행될 때, 실행 컨텍스트 스택(Stack)이 생성하고 소멸하게 됩니다. 현재 실행 중인 컨텍스트에서 관련 없는 코드(예를.. 2023. 3. 15.
[JS] 프로토타입 (Prototype) 기본적으로 자바스크립트는 객체지향 프로그래밍을 지원합니다. 단, Java와 다르게 프로토타입 기반의 객체지향 언어입니다. 자바스크립트에서는 this만큼이나 프로토타입에 대한 이해가 반드시 필요합니다. 어찌 보면 가장 어려운 개념일 수도 있지만 이번 포스팅과 다음 포스팅을 통해서 한 번 자세하게 살펴보도록 하겠습니다. 프로토타입 객체 자바스크립트는 클래스가 없습니다. 사실, 하다 보면 느끼겠지만 지원하지 않는다기보단 클래스를 만들어 사용할 수는 있습니다. 또한, ES6부터는 클래스를 지원하고 이는 기존 ES5의 프로토타입 개념을 기반으로 사용하기 편하게 바꾼 Syntatic Sugar입니다. Java에서는 class를 이용해서 객체를 생성하지만, 자바스크립트에서는 객체 리터럴이나 생성자 함수를 이용해 객체.. 2023. 3. 7.
[JS] 함수의 호출과 this 자바스크립트에서는 this라는 개념이 있습니다. 이를 이해하는 것은 매우 중요한데, 함수를 호출하는 방식에 따라 this가 바인딩되는 방식이 달라지기 때문에 어려울 수 있습니다. 이번 포스팅에서는 이를 좀 더 쉽게 이해할 수 있도록 함수를 호출하는 방식에 따라 유형을 나눠서 설명해보려 합니다. 함수 호출 패턴과 this 바인딩 JavaScript에서는 함수를 호출할 때, arguments객체와 함께 this 인자가 함수 내부로 전달됩니다. 문제는 this인자가 함수가 호출되는 방식(패턴)에 따라 다른 객체를 참조하기 때문에 이를 이해하기 어려울 수 있습니다. 객체의 메서드 호출할 때 함수를 호출할 때(내부 함수의 this 바인딩) 생성자 함수를 호출할 때 call과 apply메서드의 사용을 통한 this.. 2023. 3. 6.
[JS] 함수의 호출과 arguments객체 자바스크립트 역시 다른 언어들처럼 함수를 선언하고 이를 호출함으로써 원하는 로직을 구현하고 실행하게 됩니다. 이전 포스팅까지는 함수의 선언에 대해서 알아보았습니다. 이번 포스팅에서는 함수의 호출과 이때 전달되는 arguments객체에 대해서 살펴보도록 하겠습니다. 자바스크립트에서의 함수 호출 모든 언어에서 함수의 기본적인 작동 원리는 호출에 의한 동작입니다. Java에서 함수를 호출할 때 보다 자바스크립트에서의 함수 호출은 자유롭습니다. 물론, 타입스크립트가 최근에는 많이 사용되고 있고 이때 함수 호출의 자유도는 Java와 유사하다고 볼 수 있습니다. 참고로 자유도가 높다고 좋은 것은 아닙니다. 왜냐하면 자유도가 높을수록 불필요한 에러가 많이 발생할 수 있고 이에 따른 예외처리도 더 많이 해줘야 하기 때.. 2023. 3. 2.
728x90