Blog brand img

Ismoil logs

What is "use strict" in Javascript and its importance

This time we will discuss what is 'use strict' and why it is needed

You might have seen such a Javascript file containing use strict; on top

"use strict";

It is quite an important statement which makes a Javascript to run in a strict mode

It is very handy to get rid of potential bugs, let's take a look to some examples

myVariable = 10
console.log(10)

It is just going to log 10 with no errors, even thogh we didn't use var, let or const keywords

10

However, if you use the strict mode like this:

"use strict";

myVariable = 10
console.log(10)

// Result:
Uncaught ReferenceError: myVariable is not defined

Without strict mode being used you can do really weird things with Javascript

undefined = "defined"

Value of undefined won't be changed because it is ready only, but it won't also print any errors

"use strict";

undefined = "defined"

// Result:
Uncaught TypeError: Cannot assign to read only property 'undefined'

Let's also have a look to the following script:


function combine(x, x, z) {
    return [x, x, z]
}

console.log(combine(1,2,3))

// Result:
[2,2,3] // because value of x is overwritten

It is just meaningless to redifine a function parameter

"use strict";

function combine(x, x, z) {
    return [x, x, z]
}

console.log(combine(1,2,3))

// Result:
Uncaught SyntaxError: Duplicate parameter name 
not allowed in this context

Good news for those who use module exports and imports, because they use the strict mode by defautl. Moreover, class definitions will also use the strict mode.

If you are interested in more details about "use strict", I recommend you to watch this video