Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 리액트 네이티브 에러
- React
- 문자열 대소문자 구별
- react native picker
- fire base
- Access Key 생성
- firebase 라이브러리
- 에러
- Project
- babel.config.js
- react native 개발
- 리엑트 네이티브 아이콘
- 리액트 네이티브
- 문자열 대소문자
- react native 세팅
- react native
- react native CLI
- react native font
- Next.js
- PongWorld
- s3 upload
- error
- 리액트
- AWS
- AWS Access Key
- aws bucket 정책
- 백준
- js
- img upload
- GIT
Archives
- Today
- Total
밝을희 클태
[JS / JavaScript] 전연 객체란 무엇일까? 본문
전역 객체는 코드 실행이 되기전에 어떠한 객체보다 가장 먼저 생성이 되는 객체이다.
어떠 객체에도 속하지 않는 최상위 객체이다.
전역 객체의 이름은 브라우저, node.js 제각각이다. 브라우저 환경에서는 window, node.js 환경에서는 global이 전역 객체를 가르킨다. 하지만 ES11에서 도입된 globalThis를 사용하면 환경에 제약받지 않고 전역 객체를 가르킬 수 있다.
console.log(globalThis);
{/*
<ref *1> Object [global] {
global: [Circular *1],
clearImmediate: [Function: clearImmediate],
setImmediate: [Function: setImmediate] {
[Symbol(nodejs.util.promisify.custom)]: [Getter]
},
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setInterval: [Function: setInterval],
setTimeout: [Function: setTimeout] {
[Symbol(nodejs.util.promisify.custom)]: [Getter]
},
queueMicrotask: [Function: queueMicrotask],
structuredClone: [Function: structuredClone],
atob: [Getter/Setter],
btoa: [Getter/Setter],
performance: [Getter/Setter],
navigator: [Getter],
fetch: [Function: fetch],
crypto: [Getter]
}
전역 객체를 출력해보자 우리가 자주쓰는
- fetch
- navigator
- setInterver
- setTimeout
등 이 출력된다. 전역 객체의 프로퍼티를 참조할때는 window, global을 생략할 수 있다. 그래서 우리가 fetch를 사용할때 전역 객체의 프로퍼티인데 window.fetch() 가 아닌 fetch()로 사용을 할 수가 있었다.
그런데 모던 자바스크립트를 읽다가 문제가 생겼다
브라우저 환경에서는 아래의 코드를 실행시키면 var 키워드로 전역 변수를 선언하면 암묵적으로 전역 객체의 프로퍼티가 돼서 전역 객체 에서 해당 값을 가르킬 수 있는데 node.js 환경에서는 global 로 해도 undefined가 나온다
var x = 10;
console.log(window.x); //10
이거는 그냥 window 환경의 javascript 와 node.js 환경의 javascript가 작동하는 방식이 달라서 그렇다
'JavaScript' 카테고리의 다른 글
[ JavaScript / NextJS / React ] 랜덤으로 움직이는 별들을 만들어보자 (0) | 2024.04.23 |
---|---|
[ JavaScript ] Prototype은 뭘까? (1) | 2024.04.21 |
[JS / JavaScript] var, let, const 의 차이 (0) | 2024.03.07 |
[ JavaScript / JS ] WebSocket 연결하고 실시간 채팅 구현하기 (0) | 2024.02.25 |
[ JS / javaScript ] target 과 currentTarget의 차이 (0) | 2024.02.18 |