0

これについてはよくわからず、Stack Overflow で回答が見つからないため、質問があります。

これが正確に意味すること:

variable = variable || {}

または何か:

this.pointX = options.pointX || 6;

存在する場合、または変数が存在variableしないvariable場合に割り当てられることは理解していますが、なぜそれが機能するのですか?empty Object

||ここで「または」という意味ではありませんか?

4

6 に答える 6

3

||、SQLCOALESCEステートメントのように効果的に機能します。

var x = y || z;

意味:

yが「真の」値に評価される場合は、に割り当てyますx

yが「偽の」値に評価される場合は、に割り当てzますx

"truthy/falsy" の詳細については、http://11heavens.com/falsy-and-truthy-in-javascript を参照してください (または、Google検索してください)。

于 2013-05-24T20:20:36.587 に答える
2

は演算子です||or

基本的に、未定義の場合、新しいオブジェクト リテラルvariableに割り当てられることを意味します。variable

https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Expressions_and_Operators#Logical_operators

于 2013-05-24T20:21:55.603 に答える
1

|| 演算子は、単なるブール値 (trueまたは) ではなく、その「真偽」値を決定する実際のオブジェクトを返しますfalse。結果を判断できるようになると停止するという点で「短絡」します。

variableの真偽値がである場合はtrue、それが返されます ( whentrueor何とでも ed であるため、結果は ですtrue)。falseそれ以外の場合、2 番目のオペランドが式全体の真偽を決定するため、(真偽値が であっても) が返されます。

于 2013-05-24T20:21:19.507 に答える
1

||ここでORを意味します:

var x = 5
var x = x || {} //If v is defined, v = v, else v = {} (new, empty, object).
//x = 5 since x already was defined

var y = y || {}
//y = {} since y was undefined, the second part is run.
于 2013-05-24T20:23:24.177 に答える
-1
this.pointX = options.pointX || 6;

利用可能な場合 (つまり、null でない場合)this.pointXの値を割り当てることを意味します。そうでない場合は、の値を割り当てます。options.pointX6

于 2013-05-24T20:20:26.633 に答える
-1

|| JavaScript の演算子は、他のいくつかの言語とは異なります。JavaScript が || を評価するとき。一方のオペランドまたは他方のオペランドを返すようです。いずれかのオペランドが true に評価される場合は true に評価され、そうでない場合は false に評価される典型的な真理値表の評価は行いません。

于 2013-05-24T20:22:15.540 に答える