이 JavaScript는 드림코딩 자바스크립트 기초강의를 보며 정리한 자료 입니다.
https://www.youtube.com/@dream-coding
https://www.youtube.com/@dream-coding
www.youtube.com
변수, 변경 될수 있는 값을 말한다. 변수를 선언하면 선언된 변수에 메모리가 할당 되고 변수 값이 메모리에 저장된다. 변수명은 값이 저장된 메모리를 포인터로 가리킨다.
변수 사용시 변경 불가능한 데이터 타입을 사용하자. 그래야 하는 이유는 다음과 같다.
Dynamic typing (자동 형변환) string에서 사용하는 ‘’나 number에서 사용하는 연산기호 =,-,*,/ 를 보고 데이터 타입을 자동 형변환 한다. 자바스크립트는 실행 과정에서 타입이 정해져 잘 못 혼용해 사용하면 오류가 날 수 있으니 주의 해야 한다.
false : 0, null, undefined, NaN, ‘’ true: any other value
Map 이나 다른 자료구조에 고유한 식별자가 필요하거나 동시에 작업이 일어날 때 우선순위를 주고 싶을 때 사용하는 식별자 이다. ex) const symbol = Symbol(’id’); 선언 후 바로 출력이 안되고, description 사용하여 스트링타입으로 변환 후 출력된다.
mutable data type = 변경 가능한 데이터 = let
Immutable data type = 변경 불가능한 데이터 = const
let과 const를 사용하기 전에 변수 선언에 사용되던 명령이다. hoisting이 발생하거나 scope을 가지지 않기 때문에 지금은 사용하지 않는다.
hoisting(끌어올리다)
변수를 선언하기도 전에 사용할 수 있는 것을 말한다. 어디에 선언 한지에 상관 없이 변수를 가장 위에 끌어 올리는 것이다.
ES6에서 추가 된 문법이다. 선언 된 변수 값을 재 할당할 수 있다.
let name = "승환"
console.log(name); // 승환
name = "아무개"
console.log(name); // 아무개
const로 사용한다. 값을 선언 함과 동시에 값을 가지고 있는 포인터가 잠기기 때문에 값을 변경할 수 없다.
const name = "승환"
console.log(name); // 승환
name = "아무개" // error X
console.log(name); // 승환
변수를 사용 되어지는 영역을 말한다.
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 = 전역변수