상세 컨텐츠

본문 제목

Variable

JS

by RRS_SH 2023. 2. 15. 23:38

본문

이 JavaScript는 드림코딩 자바스크립트 기초강의를 보며 정리한 자료 입니다.

https://www.youtube.com/@dream-coding 

 

https://www.youtube.com/@dream-coding

 

www.youtube.com


 

변수, 변경 될수 있는 값을 말한다. 변수를 선언하면 선언된 변수에 메모리가 할당 되고 변수 값이 메모리에 저장된다. 변수명은 값이 저장된 메모리를 포인터로 가리킨다.

 

변수 사용시 변경 불가능한 데이터 타입을 사용하자. 그래야 하는 이유는 다음과 같다.

  • security
    보안상 다른 개발자들이 다른 값으로 변경하는 것을 막는다.
  • thread safety
    앱이 실행되면 프로세스가 할당이되고 그 안에 병렬 처리되는 여러 쓰레드들이 있는데 동시에 돌아가며 값을 변경할 수 있는데 빈번하게 일어나면 문제가 생길 수 있다.
  • reduce human mistakes
    개발 완료 후 다른개발자가 같은 변수를 사용하거나 내가 재 사용하게되는 실수를 방지 한다.

Variable types

Dynamic typing (자동 형변환) string에서 사용하는 ‘’나 number에서 사용하는 연산기호 =,-,*,/ 를 보고 데이터 타입을 자동 형변환 한다. 자바스크립트는 실행 과정에서 타입이 정해져 잘 못 혼용해 사용하면 오류가 날 수 있으니 주의 해야 한다.
  • Primitive type : 더이상 나눌 수 없는 작은 단위(single item)
    string | null | symbol | undefind | boolean | number 
  • object type : single item을 묶어서 관리하는 것을 말한다.
    let vip = {name = ‘’, age = ‘’, vipNo = ‘’}
  • function : first-class function
    function plus(num1, num2) { let result = num1 + num2; return result;}
    function도 data type 처럼 변수에 할당이 가능하고 다른 함수에 파라미터에 입력이 가능하고 리턴 타입으로도 사용 가능하다.

 

boolean

false : 0, null, undefined, NaN, ‘’ true: any other value

symbol

Map 이나 다른 자료구조에 고유한 식별자가 필요하거나 동시에 작업이 일어날 때 우선순위를 주고 싶을 때 사용하는 식별자 이다. ex) const symbol = Symbol(’id’); 선언 후 바로 출력이 안되고, description 사용하여 스트링타입으로 변환 후 출력된다.


 

let & const & var

mutable data type     = 변경 가능한 데이터    = let
Immutable data type = 변경 불가능한 데이터 = const

 

var

let과 const를 사용하기 전에 변수 선언에 사용되던 명령이다. hoisting이 발생하거나 scope을 가지지 않기 때문에 지금은 사용하지 않는다.

hoisting(끌어올리다)
변수를 선언하기도 전에 사용할 수 있는 것을 말한다. 어디에 선언 한지에 상관 없이 변수를 가장 위에 끌어 올리는 것이다.

 


let

ES6에서 추가 된 문법이다. 선언 된 변수 값을 재 할당할 수 있다.

let name = "승환"
console.log(name); // 승환
name = "아무개"
console.log(name); // 아무개

 


constans

const로 사용한다. 값을 선언 함과 동시에 값을 가지고 있는 포인터가 잠기기 때문에 값을 변경할 수 없다.

const name = "승환"
console.log(name); // 승환
name = "아무개"      // error X 
console.log(name); // 승환

 


scope

변수를 사용 되어지는 영역을 말한다.

let name = "global";

block scope
// 블록 안에서만 활용되는 변수
{
let age = "10";
console.log(age); // 10
age = 20;
console.log(age); // 20

console.log(name); // global
}
console.log(age); // X

global scope
// 어디서든 활용되는 변수
console.log(name); // global
block scope = 지역변수
global scope = 전역변수

 

 

'JS' 카테고리의 다른 글

Object  (0) 2023.02.20
Function  (0) 2023.02.18
Operator  (0) 2023.02.18
Class  (0) 2023.02.16
async & defer  (0) 2023.02.15

관련글 더보기