JavaScript Strict mode

learning javascript

JavaScript Strict mode is a way to opt into a restricted variant which is an literal expression i.e. ignored by earlier versions of JavaScript.

This is not just a subset but intentionally it has several semantics from normal code. Both strict mode and non-strict mode code can coexist, so incrementally, scripts can opt into strict mode.

This indicates that the JavaScript code should be executed in a “strict mode”.

So, how JavaScript code can be executed in “strict mode”?
It’s easy to write. Just use:

“use strict”;  (or ‘use strict’;)

This is new in JavaScript 1.8.5 and ECMAScript version 5.
At the beginning of a script or a function, the “use strict” directive can be recognized. That’s why it has global scope i.e. all code will execute in a strict mode. This makes it easier to write a “secure” JavaScript code.

Read Also: async vs defer attributes in javaScript

For example, you can not use undeclared variables when strict mode in on.

Browser support:

  • Internet Explorer 10+
  • Firefox 4+
  • Chrome 13+
  • Safari 5.1+
  • Opera 12+

In the below example, this will cause an error as x is not defined.

"use strict";
x = 5;

Click here to read more about strict mode.

In the same way the below script will produce an error as x is not defined.

"use strict";
myFunction();
function myFunction() {
x = 5;
}

Let’s see the below example:

x = 5;
myFunction();
function myFunction() {
"use strict";
y = 10;
}

Here, x will not produce an error but, y does. Why? Because, “use strict”; has local scope i.e. only code inside the function is in a strict mode.

Most of the browsers now implemented JavaScript Strict mode. To use strict mode, make sure that the browsers support strict mode. For the browser which don’t support strict mode, you are likely to have many problems in browsers that do.

Based on United States, Jacob Frazier is a skilled JavaScript developer with over 8 years of experience. He is passionate about change and trying new things, both professionally and personally. He loves startups and is extremely proactive.

Leave a Reply

Your email address will not be published. Required fields are marked *