DEV Community

Abhishek Rath
Abhishek Rath

Posted on

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!!

Discussion (5)

Collapse
jonrandy profile image
Jon Randy

Modules are strict mode by default

Collapse
abhishek_rath profile image
Abhishek Rath Author

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 Author

Ahh, Now I get it.
Thanks!!

Collapse
a4k110 profile image
ANIKET KOLTE

Very well explained ....πŸ‘πŸ™ŒPlease make more such content for beginners!