뒤늦게 적어보는 Javascript 기본 개념들!
블로그 글 하나에 기본적인 개념들을 한번에 쭉 정리해보려고 한다.
명시적으로 값이 비어있음을 나타낼 때 사용한다.
아무것도 참조하고 있지 않다는 의미가 담겨 있으며, 객체를 담을 변수를 초기화할 때 많이 사용한다.
null은 데이터 타입이자 값을 나타낸다.
값이 할당되지 않은 변수를 undefined 타입이라고 한다.
undefined 타입은 변수 자체의 값 또한 undefined이다.
즉, 정의되지 않은 것, 초기화되어 있지 않거나 존재하지 않는 객체의 프로퍼티 및 존재하지 않는 배열의 원소값에 접근하려고 할 때 얻어지는 변수의 값이라고 할 수 있다.
undefined 또한 데이터 타입이자 값을 나타낸다.
다만, undefined는 변수를 선언만 하더라도 할당되지만, null은 변수를 선언한 후에 null로 값을 바꾼다.
==는 Equal Operator이다.
a==b일 때, a와 b의 값이 같은지 비교해서 같으면 true, 다르면 false이다.
즉, ==는 값만 같으면 true를 반환한다.
===는 Strict Equal Operator이다.
a===b일 때, a와 b의 값과 type을 비교해 모두 같으면 true, 하나라도 다르면 false를 반환한다.
let a = 1
let b = "1"
console.log(a==b) // true
console.log(a===b) // false
위에서 비교한 null, undefined의 차이를 ==과 ===으로 비교해볼 수 있다.
null과 undefined 모두 '값이 없음'을 의미하므로 ==으로 비교할 경우 true를 반환하지만, null은 선언, 등록을 하는 키워드이고 undefined는 미리 선언된 전역변수라는 차이점이 있어 ===으로 비교할 경우 false를 반환한다.
console.log(null == undefined) //true
console.log(nul === undefined) //false
var, let으로 선언할 경우 변수를 담는 상자가 생성되어 해당 상자 내의 데이터를 수정할 수 있다.
반면에, const로 선언할 경우 상수를 담는 상자가 생성되어 상자 내의 데이터를 한 번 담으면 수정할 수 없다.
let과 const는 한 번 생성한 상자의 이름은 재활용할 수 없으나, var는 한 번 만들었던 상자의 이름과 같은 이름의 상자를 계속해서 만들 수 있다. 따라서 var로 데이터 상자를 만들 경우 이름이 중복되어 찾기 힘들고 에러가 쉽게 날 수 있으므로 실무에서는 var를 거의 사용하지 않는다.
Javascript는 브라우저, 문서 등을 다루는 client에 대한 개발을 하는 도구이다.
Javascript는 스크립트 언어로써 Chrome같은 브라우저(특정한 환경)에서만 사용 가능하다.
Node js는 backend에서 server에 대한 개발을 하는 도구이다.
Node js는 chrome의 자바스크립트 엔진인 v8을 이용하며, Javascript와 달리 브라우저(특정한 환경) 없이 브라우저 밖인 내 컴퓨터에서 다양한 용도로 확장하기 위해 사용이 가능하다.
Node js는 서버가 아니며, Express와 같은 라이브러리를 사용하여 Javascript 언어로 서버를 구축할 수도 있다.
Javascript는 Netscape에서 1995년에 개발한 것으로, 위에서 언급한 바와 같이 웹 브라우저에서 동적인 기능을 제공하기 위해 개발된 언어이다.
표준 규격이 없이 여러 브라우저에서 독자적인 특성이 추가되면서 호환성 문제가 발생하자, ECMA 국제기구에서 ECMAScript Standard라는 표준을 만들었다.
현재의 Javascript는 ECMAScript와 BOM(Browser Object Model), DOM(Document Object Model)을 포괄하는 개념이다.
< 참조 : https://webclub.tistory.com/1
https://steemit.com/kr-dev/@cheonmr/js-operator
https://velog.io/@bleach7/Javascript%EC%99%80-Nodejs%EA%B0%80-%EC%96%B4%EB%96%BB%EA%B2%8C-%EB%8B%A4%EB%A5%B8-%EA%B2%83%EC%9D%B8%EC%A7%80-%EC%84%A4%EB%AA%85%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94
https://blog.asamaru.net/2017/08/14/top-10-es6-features/ >