Giving both a variable and a function with the same name in a single scope should be avoided. This usage is confusing and should be avoided because it will be unclear whether the named variable refers to the function or to something else.

Noncompliant Code Example

var fun;
function fun() {
}

Compliant Solution

var fun = function fun() {
}

This rule is deprecated, use {rule:javascript:S2814} instead.