The fact that JavaScript is not a strongly typed language allows developers a lot of freedom, but that freedom can be dangerous if you go too far with it. Specifically, it is syntactically acceptable to invoke any expression as though its value were a function. But a ``++TypeError++`` may be raised if you do. == Noncompliant Code Example ---- foo = 1; foo(); // Noncompliant; TypeError foo = undefined; foo(); // Noncompliant; TypeError ---- ifdef::env-github,rspecator-view[] == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]