I would say years ago, JavaScript was for making things flash on the screen, and for making cool mouse trailers (to the general developers of the time), and for teaching patience to developers..
Then Ajax gained popularity, which allowed for Javascript to deal with Data. Javascript was a real pain because it was so rudimentary back then and when we had tools like Visual Studio which provides great intellisense for the .NET languages, when compared to Javascript which had little to none, it was a pretty awful experience honestly.. most of my peers hated javascript back then..
Then came jQuery... I told my boss a couple years ago we better learn JavaScript (me C#, him VB), because jQuery took all the work out of JavaScript and gave us some really cool functionality.
Now we have things like Node.js, which is all JavaScript, both client and server.. I'm not going to get into that.. and i'm not sure how i feel about that.. but it's definately a full materialization of JavaScript on the Web anyways..
I remember hearing about Enyo and WebOS, which was pretty much JavaScript, and Windows 8 is pretty JavaScript friendly as mentioned..
And I almost forgot to mention JSON.. JSON is a cool way for passing data around.. again, nice to work with on the client side, and DB's like Mongo seem to like the technology a lot as well
So for Usage you ask?? I would say it is like a swiss army knife.. some can say HTML with JavaScript is all you need when paired with a good webservice layer(s).. I think there's definately still room for a strong platform base (asp.net, and others..) but to each his own
IMO, I think it has it's place on the client end of things.. it's great for making UI updates.. great for making "Partial" post backs, and accessing a local data store (on the client).. and now with HTML 5, I really do see it being the "Flash Killer".. we'll probably start seeing intro's again with a skip button.. lol.. those were the cool days..
For single page applications and applications like that.. it should definitely be considered with one of the frameworks out there like backbone or one of the others (there's a tone).. Security is something to keep in mind, as well as latency.. but that will all vary in importance based on the project at hand..
So really i would say it's a mix of preference and the application at hand.