1. ホーム
  2. ジャバスクリプト

[解決済み】javascriptにnull-coalescing(Elvis)演算子または安全なナビゲーション演算子はありますか?

2022-04-02 14:21:56

質問

例を挙げて説明します。

エルビス・オペレーター(?)

Elvis演算子とは? Java の三項演算子の ひとつは これが便利な例として 常識的なデフォルト値」を返す 式が false または NULL。簡単な例としては、次のようなものがあります。 これを

def gender = user.male ? "male" : "female"  //traditional ternary operator usage

def displayName = user.name ?: "Anonymous"  //more compact Elvis operator

安全航行オペレーター(?)

Safe Navigation 演算子を使用します。 NullPointerExceptionを回避するためです。 一般的に オブジェクトを確認する必要があります。 にアクセスする前に、それがNULLでないことを確認します。 メソッドやオブジェクトのプロパティがあります。 これを避けるために、安全なナビゲーション 演算子は単に null を返します。 のように例外をスローするのではなく というように

def user = User.find( "admin" )           //this might be null if 'admin' does not exist
def streetName = user?.address?.street    //streetName will be null if user or user.address is null - no NPE thrown

解決方法は?

エルビス演算子の代わりに論理演算子「OR」を使用することができます。

例えば displayname = user.name || "Anonymous" .

しかし、Javascriptには現在、他の機能がありません。 私がお勧めするのは コーヒースクリプト 別の構文が必要な場合。 あなたが探しているものと似たような省略記法があります。

例)実存的演算子(The Existential Operator

zip = lottery.drawWinner?().address?.zipcode

機能ショートカット

()->  // equivalent to function(){}

セクシーな関数呼び出し

func 'arg1','arg2' // equivalent to func('arg1','arg2')

また、複数行のコメントやクラスもあります。 当然ながら、これをjavascriptにコンパイルするか、ページに <script type='text/coffeescript>' が、多くの機能を追加しています :) . 使用方法 <script type='text/coffeescript'> は、あくまでも開発用であり、生産用ではありません。