1. == 와 === 차이
- 동등/ 일치 비교 연산자는 값을 비교하여 그 결과가 일치하면 True, 일치하지 않으면 False를 반환
- 동등 비교 연산자는 느슨한 비교, 일치 비교 연산자는 엄격한 비교
[동등 비교 연산자(==)]
- 비교 할 때 암묵적인 타입 변환을 통해 타입을 일치시킨 다음 같은 값인지 비교
→ 타입이 다르더라고 임의적으로 타입 변환 후 값이 같으면 True!
1 == 1
1 == "1"
[일치 비교 연산자(===)]
- 타입과 값이 모두 같은지 비교해서 true 반환
1 == 1
1 == "1"
- 주의) NaN 값에 대해서는 일치 연산자가 판별할 수 없어서 isNaN함수 사용해야함❗️
2. ES6의 특징
- ECMAScript 2015로도 알려져 있는 ECMAScript 6는 ECMAScript 표준의 가장 최신 버전
1) const/let
const
는 변수 선언을 위한 ES6의 새로운 키워드로 var
보다 강력하고 일단 선언되면 재할당 불가능
=> 객체와 함께 사용할 때를 제외하고는 변경 불가능한 변수
let
은 새로운 값을 가질 수도 있고 재할당도 가능 => 변경 가능한 변수
2) template literals
- back tick으로 사용
- 변수는 ${}를 이용해 표현
var fruit = "사과"
var str =`저는 ${fruit}를 좋아합니다`
3) 객체 리터럴
- 훨씬 간결해진 코드로 객체 선언 가능
- 메소드에 콜론(:)이나 function을 붙이지 않아도 됨
- 함수명이 겹치는 경우에는 한번만 사용가능
4) 화살표 함수
- 함수 표현식을 화살표 함수로 표현 가능
- 가독성 및 유지 보수성이 올라감
function aaa(a, b) {
return a + b;
}
const bbb = (a, b) => {
return a + b;
}
const ccc = (a, b) => a + b;
5) 구조 분해 할당
- 객체나 배열에서 사용하며, 값을 해체한 후 개별 값을 변수에 새로 할당하는 과정
const num = [1, 2, 3];
const [one, two, three] = num;
console.log(one)
console.log(two)
console.log(three)
const obj = {
name:"짱구",
age:7
};
const { name, age } = obj;
console.log(name)
console.log(age)
6) Promise
- 기존에는 비동기 처를 위해 콜백 함수 이용 => 콜백헬 발생
- 위의 문제를 해결하기위해 Promise 도입, Promise 후속처리 메소드를 이용해 에러 처리 가능
7) Class
- javascript는 프로토타입 기반의 객체 지향 언어이지만 클래스 기반의 객체 지향 프로그래밍도 가능해짐
- 호이스팅이 let,const처럼 동작
8) String Method(includes,startsWith,endsWith)
- 특정문자가 포함되어있는지, 특정문자로 시작하는지, 끝나는지 판별 가능
- boolean 타입을 return
9) Muti-line String
- 기존에는 문자열이 라인을 넘어가게 되면 ‘\n’ 과 덧셈 연산자를 사용
백틱
을 사용하게 되면서 여러줄의 문자열 관리도 편리함
10) Default Parameter
- 기존에는 함수의 매개변수에 초기화를 하려면 내부 작업이 필요했으나, ES6 에서는 필요 없어짐
11) Module
package.json
파일에서 "type" :"module"
추가하여 사용
- 모듈은 모듈 스코프를 가지며,
import
와 export
키워드를 이용하여 사용
3. var, const, let
1) var
- 자바스크립트에 사용했던 키워드로 중복 선언,재할당이 가능
- var를 통해 데이터 할당 시 값이 겹치는 문제가 발생할 수 있음
- 함수 레벨 스코프
2) const
- 재선언, 재할당이 불가능
- const로 선언한 변수는 값을 변경할 수 없어서
상수
선언이라고 함
- 반드시 선언과 동시에 초기화가 이루어져야함
3) let
- JS로 프로젝트 시 var보다는 let를 많이 사용
- let은 재할당은 가능하지만 중복 선언이 불가능하여 var보다는 안정성이 올라감
- 블록 레벨 스코프
4. JS와 Node의 차이
1) Javascript
- javascript는 독립적인 언어가 아니라 스크립트 언어로, 특정한 프로그램 안에서만 동작 가능
- 크롬, 파이어폭스, 사파리, 익스플로러 등 이런 웹 브라우저가 없으면 사용할 수 없다는 단점이 있음
- 따라서 client개발을 위한 용도로만 사용했었음
2) Node
- JS를 크롬같은 브라우저에서만 사용하는 것이 아닌 브라우저 외에도 내 컴퓨터ㅇ서 다양한 용도로 확장하기 위해 만들어진 것이 Node.js
- Node.js를 사용하면 Java,Python과 같이 내 컴퓨터에서 File System를 이용, 서버 생성 가능
데스크탑에서 동작하며 JS언어로 서버개발이 가능하도록 해주는 환경
5. undefined과 null 차이
1) undefined
- 값이 비어있음을 의미
- 개발자가 의도적으로 할당한 값이 아니라 JS자체에서 변수를 초기화할 때 사용하는 값!
var
키워드로 선언한 변수는 undefined로 초기화
2) null
- 원래 값이 있었으나 의도적으로 값을 비워줄 때 사용
- 변수에 의도적으로 null값을 할당하는 것은 이전에 참조하던 값을 더 이상 참조하지 않고 값을 비워주겠다는 의미
공부하며 작성하고 있는 블로그입니다.
잘못된 내용이 있을 수 있으며 혹시 있다면 댓글 달아주시면 감사하겠습니다
😊