JS 기본 상식

장여진·2022년 5월 8일
0
post-thumbnail

1. == 와 === 차이

  • 동등/ 일치 비교 연산자는 값을 비교하여 그 결과가 일치하면 True, 일치하지 않으면 False를 반환
  • 동등 비교 연산자는 느슨한 비교, 일치 비교 연산자는 엄격한 비교

[동등 비교 연산자(==)]

  • 비교 할 때 암묵적인 타입 변환을 통해 타입을 일치시킨 다음 같은 값인지 비교
    → 타입이 다르더라고 임의적으로 타입 변환 후 값이 같으면 True!
1 == 1 // true
1 == "1" //true

[일치 비교 연산자(===)]

  • 타입과 값이 모두 같은지 비교해서 true 반환
1 == 1 // true
1 == "1" //false
  • 주의) 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) 화살표 함수

  • 함수 표현식을 화살표 함수로 표현 가능
  • 가독성 및 유지 보수성이 올라감
// ES5
function aaa(a, b) { 
  return a + b; 
} 
// ES6
// 함수 표현식 - 화살표 함수
const bbb = (a, b) => {
  return a + b;
}
// 함수 표현식 - 화살표 함수 (생략형)
const ccc = (a, b) => a + b;

5) 구조 분해 할당

  • 객체나 배열에서 사용하며, 값을 해체한 후 개별 값을 변수에 새로 할당하는 과정
// 배열에서 Spread 사용
const num = [1, 2, 3];
const [one, two, three] = num;

console.log(one) // 1
console.log(two) // 2
console.log(three) // 3

// 객체에서 Spread 사용
const obj = {
 name:"짱구",
 age:7
};

const { name, age } = obj;
console.log(name) //짱구
console.log(age) // 7

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"추가하여 사용
  • 모듈은 모듈 스코프를 가지며, importexport 키워드를 이용하여 사용

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값을 할당하는 것은 이전에 참조하던 값을 더 이상 참조하지 않고 값을 비워주겠다는 의미

공부하며 작성하고 있는 블로그입니다.
잘못된 내용이 있을 수 있으며 혹시 있다면 댓글 달아주시면 감사하겠습니다 😊

0개의 댓글