ホームページ  >  記事  >  ウェブフロントエンド  >  試してみてください...Catch V/s Safe Assignment (?=): 現代の開発にとって恩恵か呪いか?

試してみてください...Catch V/s Safe Assignment (?=): 現代の開発にとって恩恵か呪いか?

WBOY
WBOYオリジナル
2024-08-26 21:33:32884ブラウズ

Try...Catch V/s Safe Assignment (?=): A Boon or a Curse for Modern Development?

最近、JavaScript に導入された新しい安全代入演算子 (?.=) を発見し、そのシンプルさにとても魅了されています。 ?

安全な代入演算子 (SAO) は、従来の try...catch ブロックの省略表現です。これにより、操作ごとに明示的なエラー処理コードを記述しなくても、インラインでエラーをキャッチできます。以下に例を示します:

const [error, response] ?= await fetch("https://api.example.com/data");

それだけです!それはとても簡単です。フェッチ リクエストでエラーがスローされた場合、エラー定数に自動的に格納されます。それ以外の場合、応答には結果が保持されます。かなりクールですね?

しかし、待ってください...続きがあります。

SAO を使用する場合は、次のようにさらに先のエラーを処理する必要があります。

async function getData() {
  const [requestError, response] ?= await fetch("https://api.example.com/data");

  if (requestError) {
    handleRequestError(requestError);
    return;
  }

  const [parseError, json] ?= await response.json();

  if (parseError) {
    handleParseError(parseError);
    return;
  }

  const [validationError, data] ?= validation.parse(json);

  if (validationError) {
    handleValidationError(validationError);
    return;
  }

  return data;
}

SAO はエラー処理を簡素化しますが、コードがより冗長になる可能性があります。これを従来の try...catch ブロックと比較してください:

async function getData() {
try {
  const response = await fetch("https://api.example.com/data");
  const json = await response.json();
  const data = validation.parse(json);
  return data;
} catch (error) {
  handleError(error);
  return;
}
}

この場合、try...catch は 9 行のコードしか必要としませんが、SAO はその約 2 倍です。

それで、どう思いますか?安全な代入演算子は時間を節約しますか、それとも不必要な複雑さを追加しますか?

以上が試してみてください...Catch V/s Safe Assignment (?=): 現代の開発にとって恩恵か呪いか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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