DEV Community

Abhishek Rath
Abhishek Rath

Posted on

11 1

Strict mode in JavaScript

What is strict mode?

  • Strict mode was introduced in ECMAScript5 also known as ES5 in 2009.
  • Adding strict mode to JavaScript code allows your code to be checked more strictly.
  • Allows programmer to write more secure JavaScript code.

Benefits of Strict Mode

  • Using strict mode in JavaScript code throws visible errors in developer console which would otherwise fail silently (shown in the examples below).
  • Forbids programmers to use certain syntax.
  • In some cases using strict mode in code can make the code to run faster.

How to enable strict mode in JavaScript?

  • To enable strict mode write "use strict" or 'use strict' at the beginning of JavaScript code.
    Strict mode for entire code

  • The strict mode can also be used for a function.

  • To enable strict mode in function, "use strict" or 'use strict' must be the very first line in function body.
    Strict mode in function

Common mistakes that occur in non-strict mode

Using reserved words as variable names

Image description

Output 20

  • Wait!! Isn't "let" a reserved word in the JavaScript? Therefore it mustn't be used as a variable name according to naming an identifier rules. Here in the above code snippet JavaScript fails silently instead of throwing an error.
  • But, if we use strict mode, JavaScript engine will throw an error- Strict mode in code snippet Produces error

Using variables before declaring them

variable used before declaration Output

  • Using strict mode gives Reference Error.
    Variable used before declaration in strict mode
    Output

  • To know more about the strict mode, checkout the documentation by MDN

Conclusion

  • That will be all from my side. I hope, this article gave you a basic idea about the strict mode.

Keep Learning!!

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (5)

Collapse
 
jonrandy profile image
Jon Randy 🎖️

Modules are strict mode by default

Collapse
 
abhishek_rath profile image
Abhishek Rath

Yeah, the strict mode became default after the introduction of ES6. I forgot to mention that in the post.
Thanks for sharing!!

Collapse
 
piotrlewandowski profile image
Piotr Lewandowski

"strict mode became default after the introduction of ES6." - no, it did not. Like Jon above said: MODULES introduces in ES2015/ES6 are strict by default. Everything else is still as it was - "sloppy mode" -until you add 'use strict'; into your code ;)

Thread Thread
 
abhishek_rath profile image
Abhishek Rath

Ahh, Now I get it.
Thanks!!

Collapse
 
a4k110 profile image
ANIKET KOLTE

Very well explained ....👏🙌Please make more such content for beginners!