Lexical variables (let
, const
and class
) must be declared before they are used
- REFERENCE_BEFORE_LEXICAL_DECL
- Error
- High
- es6
This rule applies when lexical variables to be declared with let
, const
or class
are referenced before their declarations.
Referencing the variables before their declarations throws a ReferenceError
exception.
Therefore, the lexical variables with let
, const
or class
should be declared before they are referenced.
Noncompliant Code Example
View with compliant examples side by side// Example 1
x = 42; // REFERENCE_BEFORE_LEXICAL_DECL alarm
let x = 43;
// Example 2
console.log(y); // REFERENCE_BEFORE_LEXICAL_DECL alarm
const y = 42;
// Example 3
new A(); // REFERENCE_BEFORE_LEXICAL_DECL alarm
class A {};
Compliant Code Example
View with noncompliant examples side by side// Example 1
let x = 43;
// Example 2
const y = 42;
console.log(y);
// Example 3
class A {};
new A();
Version
This rule was introduced in DeepScan 1.0.0-alpha.