Three.js のコードを読んでいると、次のコードに違いはありますか?という愚かな疑問が生じました。
frameHeight = frameHeight !== undefined ? frameHeight : 24;
と
frameHeight = frameHeight || 24;
(frameHeight は関数のパラメータです)
ありがとう
Three.js のコードを読んでいると、次のコードに違いはありますか?という愚かな疑問が生じました。
frameHeight = frameHeight !== undefined ? frameHeight : 24;
と
frameHeight = frameHeight || 24;
(frameHeight は関数のパラメータです)
ありがとう
はい、違います。
frameHeight = frameHeight || 24;
frameHeightこれはブール値に強制されます。0, '', false, null,undefinedの場合はNaNfalse にframeHeightなり、デフォルトで 24 になります。
frameHeight = frameHeight !== undefined ? frameHeight : 24;
これは、そうframeHeightでないかどうかを明示的にチェックし、デフォルトで.undefinedundefined24
はい、違いがあり、その違いは状況によっては大きくなる可能性があります。
frameHeight = frameHeight || 24
frameHeight24が最初""に、、、、、または0_ null_undefinedNaNfalse
一方:
frameHeight = frameHeight !== undefined ? frameheight : 24
24初期値が正確に である場合にのみ割り当てundefinedます。
したがって、この特定の関数で重要になる可能性があるのは、2 番目のメソッドでは に高さをゼロに設定することを許可することです0が、最初のメソッドではそれを にオーバーライドするためframeHeightできません。024
frameHeight = frameHeight || 24;
^ null チェックも行います。0、false、空文字列 ('') NaN、未定義のチェックも行います
frameHeight = frameHeight !== undefined ? frameHeight : 24;
^ undefined をチェックするだけです。
frameHeight = frameHeight || 24;
frameHeight= 0で失敗frameHeight= nullで機能
frameHeight = frameHeight !== undefined ? frameHeight : 24;
frameHeight= nullで失敗frameHeight= 0で機能