0

関数ではfun、ブール式が真の場合に 1 を返したいと考えています。

function fun() {
    (1 == 1) && return 1;
}

alert(fun());

もちろん、これは で簡単に実行できますif (1 == 1) return 1。しかし、なぜ上記のコードが機能しないのか疑問に思っています。Chrome のコンソールで「Uncaught SyntaxError: Unexpected token return」エラーをトリガーします。

true のreturn 1場合にのみ実行するべきではありませんか? (1 == 1)これが機能しないのはなぜですか?

4

3 に答える 3

8

演算子は両方のオペランドを&&必要とするため、機能しません。expressions例えば、

expr1 && expr2

returnただし、ステートメントは (文法的に言えば) ではありませんexpressions

于 2012-05-15T20:49:43.010 に答える
2

すばらしい説明については、jmar777 の回答を参照してください。とにかく、計画を実現する方法を次に示します。私はそれを逆に変えただけです:

function fun() {
    return null || 1 == 1;
}

alert(fun());
于 2012-05-15T20:56:23.963 に答える
1

JavaScript は bash シェル スクリプトではありません。ありませんif。JavaScript も C ではありません。 ==自動的にキャストしますが、キャスト===しないので、===ほぼすべての状況でより賢明な選択ができます。

于 2012-05-15T20:50:41.893 に答える