[解決済み] JavaScriptの三項演算子で "else "がないもの
2022-02-17 05:28:56
質問
いつも
null
を何も持っていないelse条件に追加してください。回避する方法はないのでしょうか?
例えば
condition ? x = true : null;
基本的には、以下のような方法があるのでしょうか?
condition ? x = true;
今度はシンタックスエラーとして表示されるようになりました。
参考までに、実際のサンプルコードを紹介します。
!defaults.slideshowWidth ? defaults.slideshowWidth = obj.find('img').width()+'px' : null;
解決方法は?
まず、三項式はif/else構文に代わるものではなく、以下のようなif/else構文と等価なものです。 を返す 値です。つまり、if/else句はコードであり、三項式は 式 つまり、値を返すということです。
これにはいくつかの意味がある。
-
の左辺に変数がある場合のみ、三項式を使用します。
=
を返します。 - 返り値が2つの値のうちの1つになる場合のみ、3項式を使用します(適切であれば、ネストされた式を使用します)。
-
式の各部分 (? の後と : の後) は副作用のない値を返す必要があります (式
x = true
は、すべての式が最後の値を返すように真を返しますが、x が返される値に影響を与えることなく x も変更されます)
要するに、3項式の「正しい」使い方は、以下の通りです。
var resultofexpression = conditionasboolean ? truepart: falsepart;
あなたの例の代わりに
condition ? x=true : null ;
の値を設定するために三項式を使用しています。
x
を使用すると、このようになります。
condition && (x = true);
これはまだ式であり、したがってバリデーションを通過しないかもしれません。
void(condition && x = true);
最後はバリデーションを通過します。
でもって、期待値がブール値なら、条件式の結果そのものを使えばいいわけです
var x = (condition); // var x = (foo == "bar");
アップデイト
サンプルとの関連では、こちらの方が適切でしょう。
defaults.slideshowWidth = defaults.slideshowWidth || obj.find('img').width()+'px';
関連
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み] テスト
-
[解決済み】Javascript - ERR_CONTENT_LENGTH_MISMATCH
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み】JavaScriptで相対URLへのリダイレクトを行う
-
[解決済み】PhantomJS 2.1.1を使用してReactJSアプリケーションをレンダリングできない理由とは?
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み】module.exports "モジュールが定義されていません"