0
<!DOCTYPE html>
<html>
<body>
<script>
function useStrict(){
"use strict";
}
"use strict";
foo=10;
alert(foo);
</script>
</body>
</html>
エラーが発生しません。結論:strictモードは有効化されていません。しかし、関数定義を削除した場合:"use strict"を組み合わせるとどうなりますか?内部関数 "use strict";グローバルな状況では?
<!DOCTYPE html>
<html>
<body>
<script>
"use strict";
foo=10;
alert(foo);
</script>
</body>
</html>
私はエラーになります。結論:strictモードが有効になります。私は、グローバルな文脈で"use strict"
行を削除し、機能を維持するなら:
<!DOCTYPE html>
<html>
<body>
<script>
function useStrict(){
"use strict";
}
foo=10;
alert(foo);
</script>
</body>
</html>
私はエラーを取得していません。結論:strictモードは有効化されていません。ここで何が起こっているのですか?
"use strict";
がグローバルコンテキストと関数の両方にある場合、関数を削除すると厳密なモードが実際にアクティブになるため、キャンセルされるようです。しかし、その後、グローバルなコンテキストで"use strict";
行なしで、しかし、機能の中では、厳密なモードは、私には予期せぬアクティブ化されていません。関数呼び出しの中の"use strict";
が厳密なモードをそれ自身で起動しないと、前にどのように取り消すことができますか?コンテキストの
'' use strict; "'式は '