JavaScript

변수와 생성자 함수

쭈녁 2024. 1. 5. 16:10

 

변수

 

호이스팅 :

스코프 내부 어디서든 변수 선언은 최상위에서 선언된 것로 인식된다.

 

TDZ :

변수에 값을 할당하기 전엔 사용할 수 없다.

 

 

 

let은 스코프 단위에 적용되는 변수이다. 때문에 아래 코드는 애러가 발생한다. 이는 let 변수는 호이스팅이 되지 않는 것이 아니라 showAge()라는 function의 스코프 안에서만 유효하기 때문에 로그에 age 가 인식 되지 않는 것이다.

let age = 30;

function printAge(){
	console.log(age);
	let age = 20;
}

showAge()
//30

 

var 생성 과정:

  1. 선언 + 초기화
  2. 할당

 

let 생성 과정

  1. 선언
  2. 초기화
  3. 할당

 

 

let은 var와 다르게 선언과 초기화가 분리되어 있다.

var는 변수 선언과 동시에 초기화 되지만 let은 변수 이름이 먼저 선언되고

값을 초기화하는 코드를 만났을 때 초기화 된다.

 

const 선언 과정

  1. 선언 + 초기화 + 할당

 

예시 코드)

let name;
name = 'kim';

var age;
num = 30;

const gender;
gender = 'male'; //SyntaxError 발생 선언될 때 값이 할당되어야

var : 함수 스코프

- JS에서 함수는 일급객체이기 때문에 var 변수도 실행 단계에서 생성 된다.

- 블록 외부에서도 유효하지만 함수 내에 선언되면 벗어날 수 없다.

let, const : 블록 스코프

- 함수내부, if문, for문 while문 등 내부에서만 유효하다(블록내에선 지역변)

 

 

생성자 함수

 

객체 리터럴

//객체 리터럴
let user = {
	name : 'A',
	age : 20,
}

//생성자 함수
function User(name , age){    //첫글자를 대문자
		this.name = name;
		this.age = age;
}

let user1 = new User('A',2);

 

Conputed property

let a = 'age';

cosnt user = {
	name : 'A',
	[a] : 20,
	[5+5] : 10,
}
{name: 'a', age:20, 10:10}