Code Smell 116 - Variables Declared With 'var'

Code Smell 116 - Variables Declared With 'var'

Var, Let, Const: are all the same, aren't they?

TL;DR: Choose wisely your variable names, scope, and mutability.



  1. Declare const all variables unless you need to change them


Most languages don't need variable declarations.

Some other languages allow us to state mutability.

We should be strict and explicit with our declarations.

Sample Code


var pi = 3.14
var universeAgeInYears = 13.800.000.000

pi = 3.1415 // no error
universeAgeInYears = 13.800.000.001 // no error


const pi = 3.14 //Value cannot mutate or change 
let universeAgeInYears = 13.800.000.000 //Value can change

pi = 3.1415 // error. cannot define
universeAgeInYears = 13.800.000.001 // no error


[X] Manual

With mutation testing by forcing a 'const' declaration, we can check if a value remains constant and be more declarative by explicitly enforcing it.


  • Mutability

  • Javascript


Readability is always very important.

We need to explicitly state our intentions and usages.


More Info

Just as it is a good practice to make all fields private unless they need greater visibility, it is a good practice to make all fields final unless they need to be mutable.

Brian Goetz

This article is part of the CodeSmell Series.