[解決済み】switch文からreturn outするのはbreakを使うより良い方法と考えられるか?[クローズド]
2022-04-01 21:59:16
質問
オプション1 - リターンを使用した切り替え。
function myFunction(opt)
{
switch (opt)
{
case 1: return "One";
case 2: return "Two";
case 3: return "Three";
default: return "";
}
}
オプション2 - breakを使った切り替え。
function myFunction(opt)
{
var retVal = "";
switch (opt)
{
case 1:
retVal = "One";
break;
case 2:
retVal = "Two";
break;
case 3:
retVal = "Three";
break;
}
return retVal;
}
どちらも動作することは分かっていますが、どちらかがよりベストプラクティスなのでしょうか? 私は、オプション1 - returnを使用した切り替えが、よりクリーンでシンプルであるため、最も好きです。
以下は、@ic3b3rg さんのコメントにあるテクニックを使った私の具体的な例の jsFiddle です。 :
var SFAIC = {};
SFAIC.common =
{
masterPages:
{
cs: "CS_",
cp: "CP_"
},
contentPages:
{
cs: "CSContent_",
cp: "CPContent_"
}
};
function getElementPrefix(page)
{
return (page in SFAIC.common.masterPages)
? SFAIC.common.masterPages[page]
: (page in SFAIC.common.contentPages)
? SFAIC.common.contentPages[page]
: undefined;
}
関数を呼び出すには、次のようにします。
getElementPrefix(SFAIC.common.masterPages.cs);
getElementPrefix(SFAIC.common.masterPages.cp);
getElementPrefix(SFAIC.common.contentPages.cs);
getElementPrefix(SFAIC.common.contentPages.cp);
ここで問題なのは、常に未定義を返してしまうことです。 これは、プロパティではなく、オブジェクト・リテラルの実際の値を渡しているからだと推測しています。 で説明されているテクニックを使ってこれを修正するにはどうしたらいいでしょうか? の のコメントをご覧ください。
解決方法は?
ブレークを使用すると、関数内の処理を継続することができます。 関数の中でやりたいことがそれだけなら、スイッチから戻るだけでも問題ありません。
関連
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】Uncaught SyntaxError: JSON の位置 0 に予期しないトークン u があります。
-
[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?
-
[解決済み】Java:サブクラス下のenumでswitchステートメントを使用する
-
[解決済み] 大なり小なりのSwitchステートメント
-
[解決済み] スクリプトタグ - 非同期と遅延
-
[解決済み] スイッチオンタイプ」これ以上の代案はないのでしょうか?
-
[解決済み】1つのswitch case文に2つの値を使用する場合
-
[解決済み】JavaScriptで文字列がリストに入っているかどうかを判断する
-
[解決済み] break文はswitch/selectから抜け出すのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Failed to load resource: net::ERR_FILE_NOT_FOUND loading json.js
-
[解決済み】JavaScriptで':'(コロン)は何をするのか?
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】jquery $.ajaxオブジェクトのresponseJSONプロパティを取得する方法 [重複]。
-
[解決済み】「Uncaught TypeError: Chromeで "Illegal invocation "が発生する。
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】HTMLの最初の行に予期しないトークン<がある。
-
[解決済み】Javascript、[オブジェクトHTMLInputElement]を表示中。]