본문 바로가기
front-end/JavaScript

[JS ]01-variable (var와 let차이, const, primitive 타입 등)

by -제이리 2022. 2. 23.
728x90
320x100
1. Use strict

 

 

'use strict';
 
js 최상단에 적기.
 
타입스크립트를 사용한땐 안써도 되지만 바닐라 자바스크립트를 사용할땐 적는것이 좋다.
js의 flexible한 요소들을 막아준다.(선언되지 않은 함수의 값을 할당한다던지 기존의 존재하던 프로트타입을 변경한다던지 이런 비상식적인 것들을 막아주기 위함.)

 


 

2. variable(읽고 쓰기 가능)
-var 와 let
 

var는 절대 쓰지 말것!

이유1: 호이스팅문제 때문. (호이스팅: 선언을 최상단으로 끌어올리는것)
이유2: has no block scope. 블럭스코프 밖에서도 호출이되는 문제가 있음
 
그래서 나온게 let
 
let은 Mutable 타입 (변화가능)
 
* block scope란?: {}로 감싸는것. {}안에 코드작성시 안에서만 유효함

let globalName = 'global name';
{
 let name = 'Tom';
 console.log(name);
}

 

 

3. constant (읽기만 가능)

-const

Immutable 타입 (변화불가능)

 

장점: 보안성 security, thread safety, reduce human mistake


4. Variable types

 

-primitive 타입(더이상 나눠질 수 없는 싱글 아이템) : number, string, boolean, null, undefined, Symbol
 
-object 타입 (싱글아이템들을 한 박스로 관리하는것)
 
-function (first-class function: 변수에 할당이 가능함, 함수의 인자로도 전달이 됨, 함수의 리턴타입에도 펑션을 리턴할수 있음 )
 
 
 
primitive 타입
  • number(special numeric values: infinity / -infinity / Nan )
const infinity = 1/0;
const negativeInfinity = -1 / 0;
const NaN = 'not a number'/2;

  • string
const char = 'c';

  • boolean
false : 0 / null / undefined / NaN / ''
true : any other value

  • null (아무것도 없는것)

  • undefined(선언은 됐지만 아무런 값이 할당되지 않은 상태)

  • symbol

(맵이나 다른 구조에서 고유한 식별자가 필요하거나 동시다발적으로 일어날수 있는 상황에서 우선순위를 주고싶을때 쓰임. 즉 고유한 식별자를 만들때 사용함 )

const symbol01 = Symbol('id');
const symbol02 = Symbol('id');
console.log(symbol01 === symbol02); -> false 로 뜸 (id는 같아도 symbol명이 다르기때문)

'id'에 대한 심볼을 같게 설정하고 싶을 땐 .for 을 붙임
const symbol01 = Symbol.for('id');
const symbol02 = Symbol.for('id');
console.log(symbol01 === symbol02); -> true 로 뜸

console.log(`value: ${symbol01.description}, type: ${typeof}`) ->.description을 추가해야 오류안남​

 

 

 

 

 


이 글은 유튜브 드림코딩 by 엘리님의 JS 입문강의를 보면서 정리한것 입니다.

728x90
320x100

댓글