JavaScript - ストRICT モード

こんにちは、未来のJavaScriptの魔法使いたち!今日は、初めて聞いたときには少し恐怖を感じるかもしれませんが、お楽しみいただける話題をお届けします。それは、まるでテイクアウトの袋の底から余分なフライを見つけるような楽しさです。私たちが話すのは、JavaScriptのストRICT モードについてです!

JavaScript - Strict Mode

JavaScriptにおけるストRICT モード

運転を学ぶことを想像してください。最初は、インストラクターはあなたにやさしく、小さなミスを許します。しかし、あなたが進むにつれて、より厳しくなり、小さなエラーも指摘するようになります。これが、JavaScriptのストRICT モードがする precisely なことです – あなたのコードの厳しい運転教習教官のようなものです!

ストRICT モードは、ECMAScript 5(ES5)で導入された機能で、プログラムや関数を「厳しい」操作コンテキストに置くことができます。この厳しいコンテキストは、特定の操作を防ぎ、より多くの例外をスローします。

ストRICT モードの有効化

ストRICT モードを有効にするのは簡単です(そして、誰がパイを愛さないでしょうか?)。あなたのスクリプトや関数の先頭に「use strict」という文字列を追加するだけです。以下にどのように見えるかを示します:

"use strict";

// あなたのコードここに

それで終わりです!あなたの全てのスクリプトに対してストRICT モードを有効にしました。しかし、シートベルトを締めるのと同様に、最初にやらないと効果はありません!

ストRICT モードを使う理由

今、あなたは思うかもしれません、「なぜJavaScriptを厳しくする必要があるのでしょう?もう十分複雑じゃないですか?」。しかし、私の若いパダワン、ストRICT モードは実際にはあなたを助けるために存在しています。以下に、使うべき理由をいくつか挙げます:

  1. コードの一般的なミスをキャッチし、例外をスローします。 2.比較的「安全でない」とされる操作を行うと、エラーをスローします。 3.混乱を招いたり、よく考えられていない機能を無効にします。 4.あなたのコードをより安全にします。 5.あなたのコードを「クリーン」に書く手助けします。

簡単な例を見てみましょう:

"use strict";

x = 3.14; // これはエラーを引き起こします

ストRICT モード無しでは、JavaScriptは気持ちよくグローバル変数 x を作成します。しかし、ストRICT モードでは、letconst、または var で変数を宣言することを忘れたため、エラーをスローします。これは、靴ひもを結ぶのをいつも思い出させてくれる友達のようなものです!

グローバルスコープにおけるストRICT モード

ストRICT モードをグローバルスコープ(いかなる関数の外側)で使用すると、それが全てのスクリプトに適用されます。以下に例を示します:

"use strict";

function doSomething() {
x = 10; // これはエラーを引き起こします
}

doSomething();

この場合、x = 10 は関数の内部にありますが、ストRICT モードがスクリプト全体に有効であるため、エラーが発生します。

ローカルスコープにおけるストRICT モード

特定の関数内でストRICT モードを使用することもできます。これは、大型プロジェクトでストRICT モードをコードの特定の部分にだけ適用したいときに便利です。以下に方法を示します:

function strictFunction() {
"use strict";
// この関数はストRICT モードです
y = 20; // これはエラーを引き起こします
}

function nonStrictFunction() {
// この関数はストRICT モードではありません
z = 30; // これはエラーを引き起こしません
}

strictFunction();
nonStrictFunction();

この例では、strictFunction() はエラーをスローしますが、nonStrictFunction() はスローしません。まるで家の一部の部屋に「靴なし、シャツなし、サービスなし」のサインがあるようなものです!

ストRICT モードで避けるべきミス

では、ストRICT モードがキャッチする一般的なミスについて話しましょう。これらはストRICT モードの「しないこと」です:

ミス 説明
未宣言変数の使用 x = 3.14; 変数は letconst、または var で宣言する必要があります
変数へのdeleteの使用 delete x; 変数、関数、または引数を削除することはできません
引数名の重複 function f(a, a, b) {} 重複する引数名は許可されません
八進数のシンタックスの使用 var n = 023; 八進数のシンタックスは許可されません
読み取り専用プロパティへの書き込み var obj = {}; Object.defineProperty(obj, "x", { value: 0, writable: false }); obj.x = 3.14; 読み取り専用プロパティには書き込むことはできません
with 文の使用 with (Math) { x = cos(2); } with 文は許可されません

以下の複雑な例では、これらのルールのいくつかを示しています:

"use strict";

function calculateArea(radius, radius) {
// 重複した引数名 - これはエラーを引き起こします
with (Math) {
// with 文の使用 - これはエラーを引き起こします
return PI * radius * radius;
}
}

var result = calculateArea(5, 5);
console.log(result);

このコードには二つの問題があります:重複した引数名と with 文の使用。ストRICT モードはこれらの両方をキャッチし、エラーをスローして、より良い、保守しやすいコードを書く手助けします。

結論として、ストRICT モードは、あなたのコードを見守る非常に賢く、多少厳しい友達のようなものです。最初は厄介に感じるかもしれませんが、あなたがより優れたJavaScript開発者になるための手助けです。それを受け入れ、使って、コードの品質を高めましょう!

覚えておいてください、プログラミングの世界では、厳しいことは悪いことではありません – 明確で、正確で、エラーのないことが重要です。それでは、 Strict にコードを書きましょう、みんな!

Credits: Image by storyset