ホームページ  >  記事  >  ウェブフロントエンド  >  私があなたの後輩であるように説明してください: なぜ ? なのか。良い?

私があなたの後輩であるように説明してください: なぜ ? なのか。良い?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 11:03:02345ブラウズ

私はこの時点で 20 年近く JS を書いてきましたが、その理由がいまだにわかりません。これは、特にメソッド呼び出しの場合、アンチパターンの始まりではありません。

投稿を見ました

そして私の目を引いたのは 2 番目の「関数呼び出しによるオプションのチェーン」です:

const user = {
getName: () => 'Alice',
};
console.log(user.getName?.());   // Alice
console.log(user.getAge?.());    // undefined

これは「自分のオブジェクトへのインターフェースがわからないし、気にしない。」と叫びます。

オブジェクトへのインターフェースには必ず注意を払う必要があります。

ライブラリ API が変更された場合、堅牢性についての議論はほぼわかりますが、いいえ、ライブラリを使用している場合は、オブジェクトへのインターフェイスを知っているので、コードを修正してください。

それは巨大なバグ誘因のように思えます。

何かが未定義になることは決して望ましくありません。それともそれに関するメモを見逃したのでしょうか?

メソッドの場合は 2 倍になります。 2 つのオブジェクトが同じ動作をしない場合は、単に肩をすくめて「大丈夫です」と言うのではなく、異なるタイプとして扱う必要があります。

最近では null のテストは違法ですか? null が 10 億ドルの間違いと言われていることは知っていますが、それは逆に見えるものではなく、オプションの型 (Haskell のMaybe のような) によって解決されます。

オプション タイプにより、これが null になる可能性があることがわかるため、注意して続行してください。 ?のように事実を隠すことはありません。

そうは言っても、「?」という概念がなくなるのは嬉しいことです。 null のチェックに関しては単に無駄なことをしているだけであり、未定義に関しては単に設計が悪いだけです。

良いパターン、つまりバグを減らすパターンは何ですか?.?

以上が私があなたの後輩であるように説明してください: なぜ ? なのか。良い?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。