メトロアプリケーション JavaScript ディレクティブ プロローグ
C#,VBなどを開発してきた人には、Windows 8/JavaScripttコードのいくつかは読みづらいのではないでしょうか。
(function(){ "use strict"; })();
まず、"use strict";ですが、ディレクティブ プロローグと呼ばれ、暗黙的に宣言された変数を宣言することはできません。グローバルスコープで宣言するとグローバルでチェック、関数内であれば、関数内でのチェックとなります。
実際にメトロで未宣言の変数を利用すると
0x800a13b2 - JavaScript 実行時エラー: strict モードで、変数が未定義のままです。
この宣言の定義は、ECMAScript 5準拠ということなのでが、ブラウザでの対応も気になる方は下記を確認ください。
表では,IE10は対応していないように見えます??
http://kangax.github.com/es5-compat-table/
もちろんECMAScript 5以前では、文字列として判断されます。