JaveScript/JaveScript

모던자바스크립트 21, 22장 스터디

알면 알 수록 재밌다! 2023. 11. 23. 21:45

 

모던자바스크립트 스터디 9일차이다.

 

21장 빌트인 객체

22장 this

오늘은 위 단원들을 공부하고 모르는것을 정리했다.


 

# 궁금증1

 

url에서 예약문자중 +기호 스페이스(공백; space)으로 치환되는 것일까?

그럼 이것을 어떻게 구별해야할까?

 


# 이유

서버에서 맘대로 + 기호를 모두 공백(space)으로 치환해버려서

공백의 인코딩 값은 %20과 + 기호의 인코딩 값인 %2B 가 같게 보이는 현상이다.

 

이와 관련되서 전에 했던 Python 블로깅이 있다.

해결방법은 퍼센트 인코딩을 사용하면 되고 블로깅을 참고하면 된다!

 


# 궁금증2

왜 브라우저 환경과 Node.js 환경이 다른걸까?


# 이유

 

 

  • 브라우저는 엄격한 보안 정책과 제한을 받는데, Node.js는 그렇지 않다는 점이다.
    -> Node.js는 결국 브라우저 기반에서 작동되도록 어플리케이션을 만들어야하니까, 브라우저의 보안 정책과 제한을 따르게 되는데 엄격한 편은 아니라는 것
  • NodeJS에서는 환경을 제어할 수 있다. 하지만 브라우저는 클라이언트 브라우저 버전에 따라 다름
  • 노드는 요청 객체를 처리하고 브라우저는 응답 객체를 처리
  • NodeJS에는 기본 "전역" 개체가 있지만, 브라우저에는 필요없기 때문에 전역 개체가 없음

즉, Node.js는 개발을 위해 필요한 것이고, 브라우저는 보여주기 위해서 필요한 것이니까 목표가 다르기 때문에 차이점이 있는 것이다.


# 참고

Differences between Node environment and browser javascript environment

 

https://stackoverflow.com/questions/23959868/differences-between-node-environment-and-browser-javascript-environment

https://nodejs.org/en/learn/getting-started/differences-between-nodejs-and-the-browser