const?
const
는 상수를 위해 사용합니다. 상수란 변하지 않는 값을 의미합니다.
사용법
선언
const
는 선언 후 할당과 동시에 재할당 할 수 없습니다.
1 | const foo = 123; |
foo
를 123
으로 할당합니다.
1 | foo = 456; |
이미 할당 된 foo
에 456
을 재할당하면 TypeError: Assignment to constant variable.
에러가 발생합니다.
1 | const foo |
이미 선언된 foo
를 재선언하게되면 SyntaxError: Missing initializer in const declaration
에러가 발생합니다.
따라서 const
는 한번 할당되면 재할당 할 수 없고, 다시 선언도 불가합니다. 한 번 값이 지정되고 변하지 않는 변수가 있다면 const
를 사용하는 것이 좋습니다.
상수
상수는 가독성과 유지보수를 위해 적극적으로 사용해야합니다.
1 | for(var a = 1; a <= 10; a++){ |
위와 같이 1부터 10까지 출력하는 코드가 있다고 생각해봅니다. a라는 변수를 왜 사용했는지 10이라는 숫자는 무엇을 의미하는지 다른사람이 봤을 때 모르는 코드는 좋지 않은 코드입니다.
1 | const maxNum = 10; |
위와 같이 상수가 무엇을 의미하는지 변수가 무엇을 의미하는지 네이밍을 잘 작성하게되면 가독성과 유지보수성을 대폭 향상 시킬 수 있습니다.
객체
const
는 객체에서도 사용 할 수 있습니다. 객체는 Property name
과 property value
로 이루어져 있습니다. const
에서 객체를 사용할 때 Property name
은 변경 할 수 없지만 property value
는 변경 할 수 있습니다.
1 | const user = { |
위와 같이 user
라는 상수를 선언합니다.
1 | user = {} |
위와 같이 user
를 {}
객체로 초기화하게 되면 TypeError: Assignment to constant variable.
에러가 발생합니다.
1 | user.lastname = 'jin'; |
하지만 변수의 property value
를 위와 같이 변경하게 되면 user
의 property value
는 변경됩니다.
결론적으로 객체타입의 변수에는 const
를 사용하는 것이 좋습니다. 객체의 Property name
은 변경될 필요가 없습니다. 하지만 객체의 property value
는 변경 될 수 있습니다. const
를 사용하더라도 property value
를 변경 할 수 있으므로 객체를 사용 할 때에는 const
를 사용을 추천합니다.