tl;dr

Examples

this is bad

badVariable = 35

it’s bad because you didn’t use the var (or let or const) keyword, which are needed to define the scope of the variable. You have cluttered the global name space by creating a global variable.

Now this bad code will still run normally, but if you use strict, it’ll fail and give you an error

'use strict';
badVariable = 35
console.info(badVariable) // Uncaught ReferenceError: badVariable is not defined(…)
NaN.foobar = true; // Uncaught TypeError: Cannot create property 'foo' on number 'NaN'(…)

NaN is just an object used as example here, you wouldn’t actually write the above code.

delete Object.prototype //Uncaught TypeError: Cannot delete property 'prototype' of function Object() { [native code] }(…)
let someOctal = 500 + 090;
console.info(someOctal) // Uncaught SyntaxError: Octal literals are not allowed in strict mode.
let cutie = 'i am cute'
delete cutie // Uncaught SyntaxError: Delete of an unqualified identifier in strict mode.