Let 으로 정의된 변수는 다시 선언할 수 없다.
고의로 변수를 다시 선언할 수 없다.
예를들어
let x = "John Doe";
let x = 0;
// SyntaxError: 'x' has already been declared
let을 사용할 때 같은 변수에 대해 다시 선언할 수 없다는 것이다.
이는 var
과는 다르다
var
같은 경우
var x = "John Doe";
var x = 0;
다음과 같이 쓸 수 있다.
변수를 다시 선언하는 방법
var x = 10;
// Here x is 10
{
var x = 2;
// Here x is 2
}
// Here x is 2
만약 Var을 사용하였다면
원래는 {} 안에 있는 것은 더이상 사용되지 않아야한다. 하지만 그렇지 않다.
위의 예시와 같이 결국 x=2인 것이다. 어떻게 선언하든, 아래에 있는 변수가효력을 갖게된다.
이런 경우 Redeclare하려면 Let을 사용하면 된다
Let을 이용할 경우 {}안에 있는 선언만 block되고 밖에 있는 선언은 그대로 효력을 유지한다
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
다음과 같이 {}안은 block 처리 되고 밖에 있는 변수가 효력을 갖게된다
📌 다음은 모두 안되는 케이스이다
var x = 2; // Allowed 어디든 사용하던 변할 수 있는 변수다
let x = 3; // Not allowed 한번 설정되면 변할 수 없다
{
let x = 2; // Allowed
let x = 3 // Not allowed 다시 선언할 수없다/2개 이상 하나의{}안에 적을 수 없다
}
{
let x = 2; // Allowed
var x = 3 // Not allowed {}안에 있는 var는 적용되지 않는다
}
다음과 같이 사용할 수 있다
let x = 2; // Allowed
{
let x = 3; // Allowed
}
{
let x = 4; // Allowed
}
{}를 두개 이상 계속 사용할 수 있다
Const 변수는 재할당될 수 없다
const PI = 3.141592653589793;
PI = 3.14; // This will give an error
PI = PI + 10; // This will also give an error
이미 PI는 값을 할당받았다.
다시 재할당될 수 없고 새롭게 지정될 수 없다.
사실 이 Const는 상수 값을 정의하는 것은 아니다. 값에 대한 상수 참조를 정의합니다.
하지만 순서를 찾거나, 불러오거나 할 때 사용할 수 있다
예를들어서
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
*[] 여기 안에 있는 것은 0,1,2… 순서대로 콘텐츠를 바꿀 수 있다.
cars [0]은 첫번째 항목을 바꾼다는 것이다.
push를 이용하여 좌측에 항목을 추가할 수 있다.
다만 다음과 같이 값을 직접적으로 바꿀 수 없다
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
다음과 같이 할 수 있다
// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};
// You can change a property:
car.color = "red";
// You can add a property:
car.owner = "Johnson";
다음과 같이 값을 직접적으로 바꿀 수 없다
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"}; // ERROR
Const 역시 {}를 씌우게 될 경우 {} 안의 값은 block이 된다
const x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
출처 : W3 School
https://www.w3schools.com/js/js_functions.asp
+=
를 사용하면 더하겠다는 뜻이다
let x = 10;
x += 5;
텍스트를 더할 수 있다
let text1 = "John";
let text2 = "Doe";
let text3 = text1 + " " + text2;
이렇게 작성했으면 결과값은 John Doe 가 나온다