Skip to main content

JavaScript: Const Keyword

Const keyword is the same as Let. Well, somewhat similar to that, but it has differences. So, const maintains constant values, which means the values cannot be changed or redeclared.


const pill1 = "Red Pill";
const pill2 = "Blue Pill";

console.log("Do you want the " +pill1+ " or the " +pill2+ "?");


Do you want the Red Pill or the Blue Pill?

Const cannot be redeclared nor updated

But the functionality remains the same.

const ball = 'blue';
ball = 'orange'  // error: Assignment to constant variable.

and we also cannot do this:

const ball = 'round';
const ball = 'oval';   // error: Identifier 'greeting' has already been declared

Note: Same as let const declarations are block-scoped too, so there is no need of explaining that because it's the same. Every const keyword must be initialized at the beginning of the declaration.

Const Behaviour With Objects

So the behaviour of const is somewhat different when it comes to property modification. Note that the objects cannot be updated or redeclared here, but the user can manipulate the properties.

const characters = {
    hero : 'Neo',
    heroine : 'Trinity',
    Villain: 'Smith Agents'




Here we are doing the object-based operation. I'm giving each object declared inside the const characters a unique property that the user can access by calling them with the variable name. Now we might wonder whether we can change the property value of the object. Yes, you can.

const characters = {
    hero : 'Neo',
    heroine: 'Trinity',
    Villain: 'Smith Agents'


characters.Villain = 'Merovingian';



Observe value of Villain is set to new value.

Final Verdict:

  • the var keyword is globally scoped, or function scoped, while Let and const are both block scoped.
  • Var keywords can be both updated and redeclared.
  • While on the other hand, the let keyword can be updated/changed while Let cannot redeclare it like var.
  • Const cannot do either of them.
Submitted by arilio666 on September 22, 2021

Ashwin is working with iVagus as a Technical Lead. He has experience in various technologies like Cypress, JavaScript, TypeScript, Rest Assured, Selenium, Cucumber, and Java.


At ProgramsBuzz, you can learn, share and grow with millions of techie around the world from different domain like Data Science, Software Development, QA and Digital Marketing. You can ask doubt and get the answer for your queries from our experts.