Object.freeze()의 차이점 및 상수 전자는 가변성 을 방지합니다. 반면 후자는 변경성을 방지하지 않습니다. 더 나은 이해를 위해 개별적으로 논의하겠습니다.
상수
상수 동작은 let과 동일합니다. . const 를 사용하여 변수가 정의되면 재할당할 수 없습니다. . Const 로 선언된 변수 차단 범위입니다. 기능 범위가 아님 var에 의해 정의됨 .
const 의 주요 단점 핵심 단어는 개체가 변동성을 방지하는 것을 방지하지 않는다는 것입니다. . 객체가 const를 사용하여 정의된 경우에도 객체의 속성을 변경할 수 있습니다. . 이것을 가변성이라고 합니다. . const를 사용하여 할당된 변수는 다시 할당할 수 없다는 일반화가 있습니다. 그러나 const를 사용하여 객체를 정의하는 경우 , 속성을 변경할 수 있습니다. 이 시나리오에서는 가변성을 방지하기 위해 const를 피하는 것이 좋습니다. .
예시
다음 예에서 처음에 속성 'country'의 값은 "India"입니다. 그러나 나중에 const를 사용하여 변수를 할당하더라도 값이 England로 변경됩니다.
<html> <body> <script> const person = { "name" : "Suresh", "Country" : "India", "Designation" : "Mayor" } person.Country = "England" document.write(person.Country); </script> </body> </html>
출력
England
Object.freeze()
이 메서드는 불변성을 제공합니다. . 개체가 고정되면 , 속성을 변경할 수 없습니다.
다음에서는 불변성 때문에 속성 "country"의 값이 "India"에서 "England"로 변경되더라도 "India"라는 가치는 그 자리를 유지합니다.
예시
<html> <body> <script> const person = { "name" : "Suresh", "Country" : "India", "Designation" : "Mayor" } Object.freeze(person); person.Country = "England" document.write(person.Country); </script> </body> </html>
출력
India