본문 바로가기
Development (국비 복습 )/JavaScript

자바스크립트 let,const

by Puddingforever 2022. 9. 12.


let은 자바스크립트 변수 선언 방식이며, 
재선언이 허용되지 않는다 
let x = 5;
하고 let x = 6; 이런식으로 만들 수 없다.
하지만 변수의 재할당은 가능하다.
let x = 5;
x = 6;
이런식은 가능하다

하지만 const는 변수의 재선언, 변수 재할당 모두 불가능하다.
constant 뜻은 변함없는이라는 뜻임. 자바의 final과 비슷하다.

변하지않는 변수 값을 literal (문자 그대로의)라고 부르기도 한다.
const 변수에 선언된 변수값이며, 수정이 불가한 값이다.
메모리를 포함하고 있지만 , 레퍼런스를 포함하고 있지 않는다.
그냥 하나의 메모리 그 자체로 보면 될거같다. 

 

const price1 = 200;

const price2 = 300;

let totalPrice = price1 + price2;

 

여기서 price1,price2 는 const 변수로서 값을 바꿀 수 없지만, totalPrice는 값을 바꿀 수 있다.


Block Scope 
블록 스코프는 {} 블록 내부에서 선언된 변수는 해당
블록에서만 접근 가능한 걸 말한다.
let,const 는 블록스코프이다.


{
let x = 2;
}
//x는 {}밖에서 사용될 수 없다.

하지만 var는 블록 스코프가 아니기 때문에 
{
var x = 2;
}
이렇게 블록안에 변수를 선언해도 x는 스코프 밖에서 사용될 수 있다.

또한 변수를 재선언해도 블록 안 값을 그대로 가져간다.

 

 

var 

 

let x = 10;
{
let x = 2;
}

//여기서 x의 값은 10

 

const , let 

const x = 10;

{

const x = 2;
}

//여기서 x의 값은 10

 

let x = 10;
{
let x = 2;
}

//여기서 x의 값은 10

 

 

하지만 let과 const는 블록 스코프이기 때문에 블록 밖에서는 
영향을 받지 않는다.


서로 다른 블록에서 let,const 을 선언하는 것은 가능하다 

let x = 2;
{
let x =3;
}
{
let x = 5;
}

모두 가능 ! 

 

 




 


 

const 키워드는 상수를 정의하는게 아니라 , 값에 대한 레퍼랜스를 정의하는 키워드이다.

 

 


변수의 타입은 크게 2가지

1.기본형

변수를 직접적으로 가리킴
ex) int,double,boolean

2.레퍼런스형

변수를 간접적으로 가리킴
클래스 타입, 사용자 정의형 타입
ex) String, Car .. 

왜 사용할까?

객체 연결을 위한 하나의 타입, 장치이다.


const는 상수 값을 정의하는게 아니라 , 값에 대한 레퍼랜스 값을 정의한다.
따라서 변수의 재정의가 불가하지만 , 배열 상수의 값을 바꿀 수 있다.

 

배열상수 
constatnt Arrays 

//배열상수 생성 
const food= ["pizza","chicken","chocolate"];
//요소 바꿀 수 있음
cars[2] = "salad";
//요소를 넣을 수도 있음
cars.push("shrimp");





하지만 , 배열을 다시 만들 수 없다 

const food = ["pizza","chicken","chocolate"];
food = ["salad","chicken',"chocolate"];

->에러 뜸
하나하나 뽑아서 만들어야함 

상수객체의 속성을 바꿀 수 있음

//객체 생성
const food = {type : "italy" , model : "pizza", color : "red"};

//속성값을 변경
food.model = "pasta";

//속성 추가
food.owner = "me";



하지만 객체 전체를 다시 만들 수는 없다.

const food = {type : "italy", model: "pizza", color : "red"};
food = {type : "italy",model:"pasta"};

-> 에러 뜸 





 

 


자바스크립트는 대문자 소문자가 다름 

let lastname , lastName;

lastName = "Doe";
lastname = "Peterson";

lastname 이랑 lastName 이랑 다른 변수이다. 

 

 

 

'Development (국비 복습 ) > JavaScript' 카테고리의 다른 글

자바스크립트 함수  (0) 2022.09.20
자바스크립트 데이터 타입  (1) 2022.09.20
자바스크립트 연산자  (0) 2022.09.14
JS가 데이터를 표시하는 법  (0) 2022.09.12
js 기본 특징  (0) 2022.09.12

댓글