私は本当に整列するのが好きですか?そして、次のように、行に収まらない場合の私の三項演算子の::
var myVar = (condition
? ifTrue
: ifFalse
);
ただし、 JSHint は次のように文句を言います。
'?'の前に悪い改行があります
JSHintにこの警告があるのはなぜですか?それが私を保護している厄介なもの(セミコロンの挿入など)はありますか、それともJSHINT構成を安全に変更して無視できますか?
これは機能し、確かに有効です。これは、ネストされたユースケースなど、より複雑なユースケースで特に役立ちます。
var a = test1
? b
: test2
? c
: d;
[〜#〜] update [〜#〜]:この回答は現在古くなっています。どうやらクロックフォードは彼の心を変えます;)
更新については、@ CheapSteaksの answer を参照してください。
あたり クロックフォード :
演算子の後に、理想的にはコンマの後にブレークを配置します。演算子の後の中断により、コピーアンドペーストエラーがセミコロンの挿入によってマスクされる可能性が低くなります。
そう:
// this is ok var myVar = (condition ? ifTrue : ifFalse );
このサンプルコードをJSHintで実行すると、次のようになります。
// this is ok var myVar = (1==1 ? true : false );
あたり クロックフォード
三項演算子は視覚的に混乱する可能性があるので、?疑問符は常に行を開始し、インデントを4スペース増やします。また、コロンは常に行を開始し、?に揃えます。疑問符。状態は親で包まれるべきです。
var integer = function (
value,
default_value
) {
value = resolve(value);
return (typeof value === "number")
? Math.floor(value)
: (typeof value === "string")
? value.charCodeAt(0)
: default_value;
};
行の終わりに演算子を配置する必要があります。そうすれば、ステートメントが次の行に続くことがより明確になります。