Yes, you can do things like assign a value to the variable "window" (I just crashed my browser trying that one), or create new global variables deep in the depths of a nest of functions, or give two of your formal parameters the same name or rewrite the arguments list, or abuse
eval() or any number of other sins. But this flexibility comes at a price of confusion and headaches when it comes to debugging and maintainance, even when you're trying to be good.
A classic example is the ease with which you can create a variable. Unlike more static languages, you don't need to declare it at all. You don't need to give it a type or anything. You just assign something to it and off you go:
x = 1 // Now x is a variable initialized to 1
So, suppose you're a well behaved programmer and you always use local vars unless you really really need a global. You generally declare your vars this way:
var foobar = 0 // foobar is a local variable initialized to 0
So all is well and you shouldn't have any trouble with globals or anything like that. But suppose that, like me, you like to create code with a simple text editor and are prone to typos. You might just make a mistake like this:
fobar = foobar + 1
Of course, you meant to type
foobar at all.
"use strict"; x = 1 // ReferenceError: x is not defined
When this code executes, the interpreter will throw a "RefenceError" with the message "x is not defined". Instead of having a subtle runtime bug to find, you have a simple immediate failure that is already nailed down for you.
There are a few solutions to this issue, should it arise. You could refrain from putting "use strict"; at the top of your file and instead include it in each function you write. This would work around the "catting" problem (assuming you don't split functions across files, which would undoubtedly irritate your friends and neighbors.). Perhaps a better solution though, if it is within your power, is to simply write all of your code with the expectation that it will be executed in Strict Mode. Failing that, you could wrap your entire file in a Strict Mode function, then execute it immediately (IIFE). Either way, you'll thank yourself later.
If you want to see more details about exactly what Strict Mode does you can check out the MDN page on the subject.