일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- https://aws.amazon.com/ko/docker/
- https://joshua1988.github.io/web-development/javascript/promise-for-beginners/
- https://jcon.tistory.com/189
- https://appmaster.io/ko/blog/rest-apiran-mueosimyeo-dareun-yuhyeonggwa-eoddeohge-dareungayo
- https://sewonzzang.tistory.com/22
- https://joshua1988.github.io/web-development/javascript/js-async-await/
- https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
- https://goodgid.github.io/HTTP-Communicate-Process/
- https://hi-zini.tistory.com/entry/%EB%B9%84%EB%8F%99%EA%B8%B0%EC%A0%81-%EB%B0%A9%EC%8B%9D-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95-Callback-Promise-async-await
- https://siyoon210.tistory.com/130
- Today
- Total
“Connecting the dots”
JS 기본지식 본문
목 차
let, const, var (scope 개념에서의 차이)
JavaScript & Node.js
Shallow Copy & Deep Copy
null과 undefined 차이
let, const, var
우선, var는 변수 선언 방식에 있어서 큰 단점을 가지고 있다.
변수를 한 번 더 선언했음에도 불구하고, 에러가 나오지 않고 각기 다른 값이 출력되는 것을 볼 수 있다.
이는 유연한 변수 선언으로 간단한 테스트에는 편리 할 수 있겠으나, 코드량이 많아 진다면 어디에서
어떻게 사용 될지도 파악하기 힘들뿐더러 값이 바뀔 우려가 있다.
그래서 ES6 이후, 이를 보완하기 위해 추가 된 변수 선언 방식이 let 과 const 이다.
let 과 const 의 차이점은 무엇일까?
이 둘의 차이점은 immutable 여부이다.
let은 변수에 재할당이 가능하다 그렇지만 const는 변수 재선언,변수 재할당 모두 불가능하다
호이스팅이란, var 선언문이나 function 선언문 등을 해당 스코프의 선두로 옮긴 것처럼 동작하는 특성을 말한다
자바스트립트는 ES6에서 도입된 let,const를 포함하여 모든 선언(var,let,const,function,class) 을 호이스팅한다
하지만,var로 선언된 변수와는 달리 let로 선언된 변수는 선언문 이전에 참조하면 참조 에러 (referenceError)가 발생한다
java scrip & node.js 차이점
javascript는 browser, document 등을 다루는 즉, client에 대한 개발을 하는 것이다.
반대로 node.js는 backend를 다룰 수 있는 도구이다.
JavaScript는 독립적인 언어가 아니라 스크립트 언어로써, 특정한 프로그램 안에서만 동작을 할 수 있는데, 크롬, 파이어폭스, 사파리, 익스플로러 등 이런 웹 브라우저가 없으면 사용할 수 없는 단점이 공존했다.
따라서 client개발을 위한 용도로만 국한되어 있었다.
Node/js는 터미널 프로그램(원도우 cmd, mac terminal 등)에서 node를 입력하여 브라우저 없이도 실행할 수 있게 됐다.
JavaScript를 크롬(Chrome)같은 브라우저에서만 쓰는 것이 아닌 브라우저 밖. 즉, 내 컴퓨터에서 다양한 용도로 확장하기 위해 만들어진 것이 바로 Node.js이다. Node.js를 이용하면 Python과 같이 내 컴퓨터에서 File System를 이용할 수 있고, 서버를 만들 수도 있고 크롤링도 할 수 있습니다. 결국은 JavaScript도 Python과 같은 프로그래밍 언어이기 때문이다.
Node.js를 이용하여 Express같은 라이브러리를 이용해서 서버를 만들곤하지만, Node.js 자체는 웹서버가 아니다. 위에 말씀드렸다싶이 Node.js는 자바스크립트 런타임(JavaScript Runtime)으로 Node.js는 웹 서버를 만들 수 있는 하나의 방법에 불과하다.
= javascript = 브라우저
=node .js = 확장프로그램
Shallow Copy & Deep Copy ?
DEEP Copy?
+데이터 자체를 복사
+복사된 두 객체는 완저히 독립적인 메모리 차지
+value type의 객체들은 깊은 복사를 하게 된다.
+깊은 복사는 인스턴스가 완전히 독립적이다
Shallow Copy
얕은 복사는 아주 최소한만 복사를 한다 인스턴스가 메모리에 새로 생성되지 않는다
+스턴스를 생성하지 않기 때문에 깊은 복사보다 상대적으로 빠르다
+reference type을 복사하는 경우 얕은 복사가 일어난다.
null과 undefined 차이
undefined 은 변수를 선언하고 값을 할당하지 않은 상태
null은 변수를 선언하고 빈 값을 할당한 상태 (빈 갠체)
undefined는 자료형이 없는
null = object, undefined = undefined
undefined
원시값 으로 선언한 후에 값을 할당하지 않은 변수나 값이 주어지지 않은 인수에 자동 할당
전연 스코프에서의 변수이기도 하다
+값을 할당하지 않은 변수
+메서드와 선언에서 변수가 할당받지 않은 경우
+함수가 값을 return 하지 않았을 때
null
null은 원시값중 하나다 어떤 값이 의도적으로 비어있음 표현
undefined 는 값이 지정되지 않은 경우 null의 경우 해당 변수가 어떤 객체도 가리키고 있지 않다
+typeof undefined 는 출력하면 undefined 이다
+typeof null 은 출력하면 object 이다 하지만 원시타입 으로 자바스크리트에서 구현 버그로 간주
+undefined === null true
'js 기본상식' 카테고리의 다른 글
js 기본상식 == (0) | 2022.11.18 |
---|---|
백엔드 (0) | 2022.11.06 |
JS 기본상식++ (0) | 2022.11.03 |
js 기본상식 (0) | 2022.11.02 |
node.js /npm / yarn/api(함수) (0) | 2022.11.01 |