본문 바로가기
프로그래밍 및 개발/Javascript

JavaScript 전역 환경에서 this란? - 노드(Node.js)와 브라우저의 차이

by typenine9 2023. 10. 25.
300x250

JavaScript 전역 환경에서 this란? - 노드(Node.js)와 브라우저의 차이

 

javascript logo

 

JavaScript에서 'this'는 매우 중요한 개념 중 하나입니다. 'this' 키워드는 현재 실행 중인 코드의 컨텍스트를 나타냅니다. 전역 환경에서 'this'의 동작은 노드(Node.js)와 브라우저에서 조금 다를 수 있습니다. 이 글에서는 이 두 환경에서 'this'가 어떻게 작동하는지 알아보겠습니다.

 

노드(Node.js)에서의 this

 

 

노드(Node.js) 환경에서 'this'는 전역 스코프(글로벌 스코프)에서는 'global' 객체를 가리킵니다. 예시 코드를 통해 살펴보겠습니다.

 

console.log(this); // 노드에서 실행 시, 결과는 [object global] 입니다.

 

이 코드는 노드 환경에서 실행될 때 'this'가 'global' 객체를 참조하는 것을 보여줍니다.

 

브라우저에서의 this

 

 

this - JavaScript | MDN

JavaScript에서 함수의 this 키워드는 다른 언어와 조금 다르게 동작합니다. 또한 엄격 모드와 비엄격 모드에서도 일부 차이가 있습니다.

developer.mozilla.org

 

브라우저 환경에서 'this'는 전역 스코프에서 'window' 객체를 가리킵니다. 다음은 브라우저에서의 예시 코드입니다.

 

console.log(this); // 브라우저에서 실행 시, 결과는 [object Window] 입니다.

 

브라우저에서 'this'가 'window' 객체를 가리키는 것을 확인할 수 있습니다.

 

this의 동적인 성격

 

'전역' 스코프에서의 'this'는 환경에 따라 다르게 동작합니다. 그러나 'this'의 값은 호출된 컨텍스트에 따라 동적으로 변할 수 있습니다. 예를 들어, 함수 내에서 'this'는 호출한 객체를 가리킵니다.

 

function myFunction() {
  console.log(this);
}

myFunction(); // 노드 또는 브라우저에서 실행 시, 결과는 해당 환경의 'global' 또는 'window' 객체입니다.

 

이 코드에서 'myFunction' 내에서의 'this'는 호출한 환경에 따라 'global' 또는 'window' 객체를 참조합니다.

 

끝으로

 

JavaScript에서 'this'는 현재 실행 중인 코드의 컨텍스트에 따라 동적으로 변경됩니다. 전역 환경에서 'this'는 노드에서는 'global' 객체를, 브라우저에서는 'window' 객체를 가리킵니다. 이러한 동작을 이해하면 JavaScript 코드를 더욱 효과적으로 작성하고 디버깅할 수 있습니다.

 

▼ 아래 글도 읽어보세요! ▼

 

 

JavaScript 일급 객체로서의 함수 소개, 특징, 예제 코드

JavaScript에서 일급 객체로서의 함수 JavaScript에서 함수는 특별한 역할을 수행하는 일급 객체입니다. 이 글에서는 JavaScript에서 함수가 일급 객체로서 가지는 특징과 그 중요성에 대해 살펴보고, 예

typenine9.tistory.com

 

 

소수점 데이터 시간으로 변환

엑셀 자료를 import 해서 프로그램 dataset에 넣는 작업을 하고 있었다. 엑셀 데이터에는 분명 24시 단위로 잘 적혀 있던 데이터가 import 하고 보니 소수점으로 자꾸 나왔다. 왜 그런가 싶어 자료를 보

typenine9.tistory.com

 

 

[백준] 10382. 꼬마 정민 - 알고리즘 문제풀이

문제. 꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다! 11382번: 꼬마 정민 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다. www.acmicpc.n

typenine9.tistory.com

 

<