これを書くためのより短い方法があるかどうか疑問に思います:
var x = 1;
if(y != undefined) x = y;
最初に試しx = y || 1
ましたが、うまくいきませんでした。これについて行く正しい方法は何ですか?
これを書くためのより短い方法があるかどうか疑問に思います:
var x = 1;
if(y != undefined) x = y;
最初に試しx = y || 1
ましたが、うまくいきませんでした。これについて行く正しい方法は何ですか?
var x = y !== undefined ? y : 1;
が偽物である場合(たとえば、、)var x = y || 1;
に割り当てられることに注意してください。これが、「機能しなかった」理由である可能性があります。また、がグローバル変数である場合、それが本当に定義されていない場合は、としてアクセスしない限り、エラーが発生する可能性があります。1
y
false
0
""
y
window.y
vol7ronがコメントで示唆しているように、typeof
グローバル変数をwindow.<name>
次のように参照する必要を回避するために使用することもできます。
var x = typeof y != "undefined" ? y : 1;
すぐにそれを書く別の方法
bePlanVar = !!((bePlanVar == false));
// is equivalent to
bePlanVar = (bePlanVar == false) ? true : false;
// and
if (bePlanVar == false) {
bePlanVar = true;
} else {
bePlanVar = false;
}
y = (y != undefined) ? y : x;
かっこは必要ありません。このように読みやすいと思うので、かっこを追加するだけです。
他の方法は短絡を使用することです:
x = (typeof y !== 'undefined') && y || 1
私自身は三部形式の方が読みやすいと思いますが。
これが機能する方法ですが、実際にはどの言語にとってもベストプラクティスではない可能性があります。
var x,y;
x='something';
y=1;
undefined === y || (x = y);
あるいは
undefined !== y && (x = y);
「y」のデフォルトは1であるように見えます。2020年には矢印関数が役立ちます。
let x = (y = 1) => //insert operation with y here
'x'を関数とします。ここで、'y'は、nullまたは未定義の値の場合にデフォルトで' 1'が割り当てられるパラメーターであり、yを使用して操作を返します。
この簡略化された方法をif/elseで試すことができます。
// Syntax
if condition || else condition
// Example
let oldStr = "";
let newStr = oldStr || "Updated Value";
console.log(newStr); // Updated Value
// Example 2
let num1 = 2;
let num2 = num1 || 3;
console.log(num2); // 2 cause num1 is a truthy