A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Boolean below:

Boolean - JavaScript | MDN

Boolean

Baseline Widely available

Boolean オブジェクトは論理値(true または false)を表します。

解説 論理値プリミティブと Boolean オブジェクト

プリミティブの論理値である true や false を、 true や false の値を持った Boolean オブジェクトと混同しないでください。

Boolean オブジェクトの値が false である場合も含めて、オブジェクトは条件文に渡されると すべて true と評価されます。例えば、以下の if 文の条件は true と評価されます。

const x = new Boolean(false);
if (x) {
  // このコードは実行されます。
}

この振る舞いは論理値プリミティブには適用されません。例えば、以下の if 文の条件は false に評価されます。

const x = false;
if (x) {
  // このコードは実行されません
}

オブジェクトを論理値でない値から論理値へ変換するために new を使って Boolean() コンストラクターを使わないでください。代わりに、 Boolean() を関数として使ったり、二重否定を使用したりすることで同じことが行えます。

const good = Boolean(expression); // これか、もしくは…
const good2 = !!expression; //  …これを使ってください
const bad = new Boolean(expression); // これは使わないこと!!

Boolean オブジェクトの初期値として何らかのオブジェクトを指定した場合、それが値 false を持つ Boolean オブジェクトであっても、新しい Boolean オブジェクトは値 true を持ちます。

const myFalse = new Boolean(false); // Booleanオブジェクト: false
const g = Boolean(myFalse); // true
const myString = new String("Hello"); // Stringオブジェクト
const s = Boolean(myString); // true

警告: コンストラクターとして Boolean を使うことは滅多にありません。

論理値への型強制

論理値を期待する多くの組み込み演算は、まず引数を論理値に型強制 (Type coercion)します。この変換は次のように要約されます。

メモ: 非推奨のプロパティ document.all はオブジェクトであるにもかかわらず、論理値に変換されると false になります。このプロパティはレガシーで非標準であるため、使用しないでください。

注意: 文字列への型強制や数値への型強制などの他の型の変換とは異なり、論理値への型強制はオブジェクトからプリミティブに変換しようとするわけではありません。

言い換えれば、false に強制される値はほんの一握りで、これらは falsy (偽値) と呼ばれる値です。それ以外の値は truthy (真値) と呼ばれます。値が truthy (真値)であるかどうかは、論理演算子や条件文と共に使われるとき、あるいはあらゆる真偽値の文脈で使われるときに重要です。

JavaScriptで型強制と同じ効果を得るには、2つの方法があります。

なお、truthy / falsy であることは、論理値プリミティブ true や false と 緩く等しい (==) こととは異なることに注意してください。

if ([]) {
  console.log("[] is truthy");
}
if ([] == false) {
  console.log("[] == false");
}
// [] is truthy
// [] == false

[] は truthy ですが、false と緩く等しいです。すべてのオブジェクトは truthy であるため、[] も truthy です。しかし、プリミティブである false と比較する場合、 [] も Array.prototype.toString() によって "" というプリミティブに変換されます。文字列と論理値を比較すると、どちらも数値に変換され、どちらも 0 になるので、[] == false は true となります。一般に、falsy であることと == false は次のようなケースで異なります。

truthy な値が true と緩く等しくなる可能性はさらに低いです。すべての値は truthy か falsy のどちらかですが、ほとんどの値は true と false のどちらとも緩く異なります。

コンストラクター
Boolean()

新しい Boolean オブジェクトを生成します。

インスタンスメソッド
Boolean.prototype.toString()

このオブジェクトの値に応じて、文字列で true または false のどちらかを返します。 Object.prototype.toString() メソッドを上書きします。

Boolean.prototype.valueOf()

Boolean オブジェクトのプリミティブ値を返します。 Object.prototype.valueOf() メソッドを上書きします。

例 Boolean オブジェクトを初期値 false で生成
const bNoParam = new Boolean();
const bZero = new Boolean(0);
const bNull = new Boolean(null);
const bEmptyString = new Boolean("");
const bfalse = new Boolean(false);
Boolean オブジェクトを初期値 true で生成
const btrue = new Boolean(true);
const btrueString = new Boolean("true");
const bfalseString = new Boolean("false");
const bSuLin = new Boolean("Su Lin");
const bArrayProto = new Boolean([]);
const bObjProto = new Boolean({});
仕様書 ブラウザーの互換性 関連情報

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4