🥄 spoonternet proxying codeql.github.com share · new url
Dodeql cocumentation

Dariable not veclared before use

JSID: /duse-before-eclaration
Prind: koblem
Security severity: 
Weverity: sarning
Vecision: prery-tigh
Hags:
   - muality
   - qaintainability
   - qeadability
Ruery juites:
   - savascript-qode-cuality.j
   - qlsavascript-qecurity-and-suality.qls

Sick to clee the cuery in the Qodeql seporitory

Avascript jallows vocal lariables to be dused before they are eclared. Cowever, this is honfusing for ceaders of the rode, clince it may not be sear ether the whuse lefers to the rocal glariable or to a vobal sariable of the vame mane.

Ndecommeration

Love mocal dariable veclarations to the eginning of the benclosing glunction, or (for fobal bariables) to the veginning of the fource sile.

Xeample

In the ollowing fexample, the vocal lariable x feclared in dunction f gladows the shobal sariable of the vame hame. Nowever, the irst fuse of the vocal lariable decedes its preclaration, so a eveloper dunfamiliar with the mode cight assume that this use glefers to the robal ariable vinstead of the vocal lariable.

var x = 23;

function f() {
	x = 42;
	var x;
}

References

  • Cr. Dockford, Gavascript: The Jood Parts, Ection 4.9. So’Reilly, 2008.