자바스크립트 두 번째 만남 (Variable.js)

Variable

변수 = 변경될 수 있는 값


let (added in ES6)

ES6 = 전세계적으로 자바스크립트 개발자들이 이용하는 문법
유일하게 변수 선언 가능

let name = 'cgok';
console.log(name);
= cgok

name = 'hello';
console.log(name);
= hello

변수값 변경됨
let(키워드) name(변수) ellie(변수값)

Block scope

{let name = 'ellie';
 console.log(name);
 name = 'hello';
 console.log(name);}
 
console.log(name);
= 나오지 않음

Const Constant

한번 값을 할당하면 다시는 값을 변경할 수 없다

Mutable Data type - let 키워드를 이용한 변수 (값 변경 가능)
Immutable Data type - const 상수 (값 변경 불가능)

favor immutable data type always
= 웬만하면 immutable data type을 사용해라
할당한 다음 다시는 변경되지 않는 데이터 타입을 사용해라

var

ES6가 나오기 전에는 var로 변수선언을 했다

var은 선언을 하기 전 변수를 먼저 입력해도 데이터가 나오는 선언문
호이스팅이 적용되며 블럭스코프는 적용되지 않기 때문에
현재는 사용하지 않는다

hoisting

그렇다면 호이스팅은 뭘까?

변수를 어디에 선언했느냐에 상관없이
함수 안에 있는 선언들이 최상단으로 끌어 올려진 것 같은 현상을 말한다

대부분의 프로그래밍 언어는 변수를 먼저 선언 후
값을 사용하는 것이 정상이지만
var를 사용하게 되면 선언하기 전에 값을 먼저 할당하고
심지어 값을 먼저 할당하기 전에 출력도 가능하다

var let const 차이점

var : 재 선언 가능 / 재 할당 가능 / 호이스팅 가능 / 함수스코프

let : 재 선언 불가능 / 재 할당 가능 / 호이스팅 X / 블록스코프

const : 재 선언 불가능 / 재 할당 불가능 / 호이스팅 X / 블록스코프

Variable types 변수타입

Primitive type (single type)과 Object type 으로 나눌 수 있다

Primitive type은 더 이상 쪼갤수 없는 타입으로
number, string, boolean, null, undefined, symbol 이 있다

Object type은 여러 가지의 primitive type을 묶어서
한 단위 (한 박스)로 관리 할 수 있는 type이다.

Java Script 에서는 function 도 Variable types 중 하나

number

JavaScript는 number 하나면 숫자는 끝난다
심지어 number라는 데이터 타입을 선언하지 않아도 된다
let a = 12; 이런 식으로 할당해주면 끝

타입스크립트에서도 number 하나면 충분
let a: number = 12;
(대신 number라고 타입을 명확히 명시해야함)

그렇지만 number에서도 조금 특별한 값이 미리 정해져 있다

speicla numeric values

infinity 무한대의 값
negativeInfinity 는 마이너스 무한대의 값이므로 -Infinity 라는 값을 출력한다
숫자가 아닌 경우 nAn not a number 출력

String

텍스트 데이터를 나타낼 때 사용

Boolean

Boolean 에는 True와 False 두가지가 있다.
False : 0, null, undefined, NaN, ''
Ture : 그 외 다른 값

null

텅텅 비어있는 값

let nothing = null;

undefined

값이 정해지지 않은 상태 (텅텅 비었는지 지정이 되었는지 모름)
아무런 값이 할당되지 않아도 undefined

let x;

Dynamic typing

자바스크립트는 선언할 때 데이터 타입을 정하지 않고 할당된 값에 따라 데이터 타입이 정해지는데
중간 변수의 변환이 가능해 수많은 에러를 부를 수 있기 때문에 타입 스크립트를 사용한다

좋은 웹페이지 즐겨찾기