JavaScriptの比較では、どの等しい演算子(== vs ===)を使用する必要がありますか?

5662
bcasp 2008-12-12 04:19.

私はJSLintを使用してJavaScriptを実行していますが、ステートメント内の比較などを行うときに、==(2つの等号)を===(3つの等号)に置き換える多くの提案が返されます。idSele_UNVEHtype.value.length == 0if

交換にパフォーマンス上のメリットがある==とは===

多くの比較演算子が存在するため、パフォーマンスの向上は歓迎されます。

型変換が行われない場合、パフォーマンスは向上し==ますか?

30 answers

6660
Bill the Lizard 2008-12-12 04:25.

厳密な等式演算子(===)は==、型変換が行われないことを除いて、抽象等式演算子()と同じように動作します。また、型が等しいと見なされるには、型が同じである必要があります。

参照:Javascriptチュートリアル:比較演算子

==オペレータは、平等のために比較されます必要な型変換を行った後===オペレータはなりません二つの値が同じ型でない場合ので、変換を行い===、単純に返されますfalse。どちらも同じくらい速いです。

ダグラス・クロックフォードの優れたJavaScriptを引用するには:The Good Parts、

JavaScriptには、2セットの等式演算子があります:===!==、およびそれらの邪悪な双子==!=。良いものはあなたが期待するように働きます。2つのオペランドが同じタイプで同じ値の場合、を===生成trueして!==生成しfalseます。悪の双子は、オペランドが同じタイプの場合は正しいことを行いますが、異なるタイプの場合は、値を強制しようとします。彼らがそれを行うための規則は複雑で記憶に残るものではありません。これらは興味深いケースのいくつかです:

'' == '0'           // false
0 == ''             // true
0 == '0'            // true

false == 'false'    // false
false == '0'        // true

false == undefined  // false
false == null       // false
null == undefined   // true

' \t\r\n ' == 0     // true

推移性の欠如は憂慮すべきです。私のアドバイスは、邪悪な双子を決して使わないことです。代わりに、常にとを使用===してください!==。上記のすべての比較falseは、===演算子を使用して生成されます。


更新:

@Casebashは、コメントと@PhillipeLaybaertの オブジェクトに関する回答で良い点を指摘しました。オブジェクトの場合、==および===互いに一貫して動作します(特別な場合を除く)。

var a = [1,2,3];
var b = [1,2,3];

var c = { x: 1, y: 2 };
var d = { x: 1, y: 2 };

var e = "text";
var f = "te" + "xt";

a == b            // false
a === b           // false

c == d            // false
c === d           // false

e == f            // true
e === f           // true

特殊なケースは、toStringorvalueOfメソッドが原因で、プリミティブを同じプリミティブと評価されるオブジェクトと比較する場合です。たとえば、文字列プリミティブとStringコンストラクタを使用して作成された文字列オブジェクトの比較について考えてみます。

"abc" == new String("abc")    // true
"abc" === new String("abc")   // false

ここで、==演算子は2つのオブジェクトの値をチェックして返しますtrueが、===は同じタイプではないことを確認して、を返しfalseます。どちらが正しいか?それは本当にあなたが比較しようとしているものに依存します。私のアドバイスは、質問を完全にバイパスし、Stringコンストラクターを使用して文字列リテラルから文字列オブジェクトを作成しないことです。

参照
http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3

1168
Kalpesh Rajai 2008-12-12 04:33.

==演算子の使用(Equality

true == 1; //true, because 'true' is converted to 1 and then compared
"2" == 2;  //true, because "2" is converted to 2 and then compared

使用する===演算子(アイデンティティ

true === 1; //false
"2" === 2;  //false

これは、等式演算子==が型強制を行うためです。つまり、インタープリターは、比較する前に値を暗黙的に変換しようとします。

一方、ID演算子===は型強制を行わないため、比較時に値を変換しないため、1つのステップをスキップするため、(このJSベンチマークテストによると)高速になります。

758
SNag 2014-05-05 19:21.

間の等価比較の興味深い絵図=====

ソース: http://dorey.github.io/JavaScript-Equality-Table/


var1 === var2

===JavaScriptの同等性テストに使用する場合、すべてがそのままです。評価される前に変換されるものはありません。


var1 == var2

==JavaScriptの同等性テストに使用する場合、いくつかのファンキーな変換が行われます。

この話の教訓:

===行われる変換を完全に理解していない限り、使用してください==

627
Philippe Leybaert 2009-06-06 09:11.

ここでの答えでは、私は平等が何を意味するかについて何も読んでいませんでした。それ===同じタイプの等しいことを意味すると言う人もいますが、それは実際には真実ではありません。これは、実際には、両方のオペランドが同じオブジェクトを参照するか、値タイプの場合は同じ値を持つことを意味します

それでは、次のコードを見てみましょう。

var a = [1,2,3];
var b = [1,2,3];
var c = a;

var ab_eq = (a === b); // false (even though a and b are the same type)
var ac_eq = (a === c); // true

こっちも一緒:

var a = { x: 1, y: 2 };
var b = { x: 1, y: 2 };
var c = a;

var ab_eq = (a === b); // false (even though a and b are the same type)
var ac_eq = (a === c); // true

あるいは:

var a = { };
var b = { };
var c = a;

var ab_eq = (a === b); // false (even though a and b are the same type)
var ac_eq = (a === c); // true

この動作は必ずしも明白ではありません。物語には、平等で同じタイプである以上のことがあります。

ルールは次のとおりです。

値のタイプ(数値)の
a === b場合abが同じ値で同じタイプの場合はtrueを返します

参照タイプの
a === b場合まったく同じオブジェクトab参照する場合はtrueを返します

文字列の
a === b場合abが両方とも文字列であり、まったく同じ文字が含まれている場合はtrueを返します


文字列:特殊なケース...

文字列は値型ではありませんが、Javascriptでは値型のように動作するため、文字列内の文字が同じで長さが同じ場合(3番目のルールで説明)は「等しい」になります。

今それは面白くなります:

var a = "12" + "3";
var b = "123";

alert(a === b); // returns true, because strings behave like value types

しかし、これはどうですか?:

var a = new String("123");
var b = "123";

alert(a === b); // returns false !! (but they are equal and of the same type)

文字列は値型のように動作すると思いましたか?さて、それはあなたが誰に尋ねるかによります...この場合、aとbは同じタイプではありません。aタイプでありObjectながら、b型ですstringStringコンストラクターを使用して文字列オブジェクトを作成Objectすると、ほとんどの場合文字列として動作する型の何かが作成されることを覚えておいてください。

274
nalply 2009-11-29 08:18.

この助言を加えさせてください:

疑わしい場合は、仕様をお読みください。

ECMA-262は、JavaScriptが方言であるスクリプト言語の仕様です。もちろん、実際には、何かがどのように処理されるかについての難解な定義よりも、最も重要なブラウザーがどのように動作するかが重要です。しかし、なぜnew String( "a")!== "a"なのかを理解することは役に立ちます。

この質問を明確にするために、仕様の読み方を説明させてください。この非常に古いトピックでは、非常に奇妙な効果について誰も答えを持っていなかったことがわかります。したがって、仕様を読むことができれば、これはあなたの職業に非常に役立ちます。習得したスキルです。それでは、続けましょう。

PDFファイルで===を検索すると、仕様の56ページに移動します11.9.4。Strict Equals Operator(===)、そして私が見つけた仕様書をくぐり抜けた後:

11.9.6厳密な等式比較アルゴリズム
比較x === y(xとyは値)は、trueまたはfalseを生成します。このような比較は次のように実行されます
  。1。Type(x)がType(y)と異なる場合は、falseを返します
  2. Type(x)がUndefinedの場合、trueを返します
  3. Type(x)がNullの場合、trueを返します
  4. Type(x)がNumberでない
  場合は、手順11に進みます。5。xNaNの場合は、falseを返します
  6. yがNaNの場合、falseを返します
  7. xがyと同じ数値の場合、trueを返します
  8. xが+0でyが-0の場合、trueを返します
  9. xが-0で、yが+0の場合、trueを返します
  10.falseを返します
  11. Type(x)がStringの場合、xとyがまったく同じ文字シーケンス(対応する位置で同じ長さと同じ文字)であればtrueを返します。それ以外の場合は、falseを返します
  12. Type(x)がブール値の場合、xとyが両方ともtrueまたは両方ともfalseの場合trueを返します。それ以外の場合は、falseを返します。   13. xとyが同じオブジェクトを参照している場合、または互いに結合されているオブジェクトを参照している場合はtrueを返します(13.1.2を参照)。それ以外の場合は、falseを返します

興味深いのはステップ11です。はい、文字列は値の型として扱われます。しかし、これはなぜnew String( "a")!== "a"であるかを説明していません。ECMA-262に準拠していないブラウザはありますか?

そんなに早くない!

オペランドの種類を確認してみましょう。typeof()でラップして、実際に試してみてください。new String( "a")がオブジェクトであり、ステップ1が使用されていることがわかりました。タイプが異なる場合はfalseを返します

new String( "a")が文字列を返さない理由がわからない場合は、仕様を読み取る演習を行ってみてはどうでしょうか。楽しんで!


Aidiakapiはこれを以下のコメントに書いています:

仕様より

11.2.2新しい演算子

Type(コンストラクター)がObjectでない場合は、TypeError例外をスローします。

つまり、StringがObject型でない場合、new演算子で使用することはできません。

newは、Stringコンストラクターの場合でも、常にObjectを返します。そして悲しいかな!文字列の値のセマンティクス(手順11を参照)は失われます。

そしてこれは最終的に意味します:new String( "a")!== "a"

106
Simon Scarfe 2008-12-26 01:17.

次のようなコードを使用して、FirefoxでFirebugを使用してこれをテストしました。

console.time("testEquality");
var n = 0;
while (true) {
  n++;
  if (n == 100000)
    break;
}
console.timeEnd("testEquality");

そして

console.time("testTypeEquality");
var n = 0;
while (true) {
  n++;
  if (n === 100000)
    break;
}
console.timeEnd("testTypeEquality");

私の結果(それぞれ5回テストされ、平均化されました):

==: 115.2
===: 114.4

したがって、ごくわずかな違い(これは100000回を超える反復です、覚えておいてください)はごくわずかだと思います。パフォーマンスはそうする理由ではありませ===。安全性を入力すると(JavaScriptで取得するのと同じくらい安全です)、コードの品質はです。

103
Shiki 2010-05-13 02:58.

PHPとJavaScriptでは、これは厳密な等式演算子です。つまり、タイプと値の両方を比較します。

99
Dimitar 2010-05-13 02:58.

JavaScriptでは、同じ値とタイプを意味します。

例えば、

4 == "4" // will return true

だが

4 === "4" // will return false 
90
Doctor Jones 2008-12-12 04:58.

===オペレータはそれが、厳密な比較演算子と呼ばれない異なる==演算子。

2つの変数aとbを取りましょう。

以下のために「== bの」であることを本当のaとbのニーズに評価することと同じ値

「a === b」の場合、trueと評価するには、aとbが同じ値であり、同じタイプである必要があります。

次の例を見てください

var a = 1;
var b = "1";

if (a == b) //evaluates to true as a and b are both 1
{
    alert("a == b");
}

if (a === b) //evaluates to false as a is not the same type as b
{
    alert("a === b");
}

要約すると; ==演算子を使用すると、望まない状況でtrueと評価される可能性があるため、===演算子を使用する方が安全です。

90%の使用シナリオでは、どちらを使用してもかまいませんが、ある日予期しない動作が発生した場合の違いを知っておくと便利です。

87
Luis Perez 2016-08-10 06:50.

なぜ==そんなに予測できないのですか?

空の文字列""を数字のゼロと比較すると何が得られます0か?

true

うん、そうだね。==空の文字列と数字のゼロは同時に。

そしてそれはそれだけではありません、ここにもう一つあります:

'0' == false // true

配列を使うと物事は本当に奇妙になります。

[1] == true // true
[] == false // true
[[]] == false // true
[0] == false // true

その後、文字列で奇妙に

[1,2,3] == '1,2,3' // true - REALLY?!
'\r\n\t' == 0 // true - Come on!

悪化する:

等しいと等しくないのはいつですか?

let A = ''  // empty string
let B = 0   // zero
let C = '0' // zero string

A == B // true - ok... 
B == C // true - so far so good...
A == C // **FALSE** - Plot twist!

もう一度言わせてください:

(A == B) && (B == C) // true
(A == C) // **FALSE**

そして、これはあなたがプリミティブで得るクレイジーなものです。

==オブジェクトで使用するとき、それはまったく新しいレベルのクレイジーです。

この時点であなたはおそらく疑問に思っています...

なぜこれが起こるのですか?

それ===は、2つの値が同じかどうかをチェックするだけの「トリプルイコール」()とは異なります。

==ない他のものの全体の束を

関数には特別な処理があり、null、未定義、文字列には特別な処理があります。

それはかなり奇抜になります。

実際、何をするかを実行する関数を作成しようとすると、==次のようになります。

function isEqual(x, y) { // if `==` were a function
    if(typeof y === typeof x) return y === x;
    // treat null and undefined the same
    var xIsNothing = (y === undefined) || (y === null);
    var yIsNothing = (x === undefined) || (x === null);

    if(xIsNothing || yIsNothing) return (xIsNothing && yIsNothing);

    if(typeof y === "function" || typeof x === "function") {
        // if either value is a string 
        // convert the function into a string and compare
        if(typeof x === "string") {
            return x === y.toString();
        } else if(typeof y === "string") {
            return x.toString() === y;
        } 
        return false;
    }

    if(typeof x === "object") x = toPrimitive(x);
    if(typeof y === "object") y = toPrimitive(y);
    if(typeof y === typeof x) return y === x;

    // convert x and y into numbers if they are not already use the "+" trick
    if(typeof x !== "number") x = +x;
    if(typeof y !== "number") y = +y;
    // actually the real `==` is even more complicated than this, especially in ES6
    return x === y;
}

function toPrimitive(obj) {
    var value = obj.valueOf();
    if(obj !== value) return value;
    return obj.toString();
}

では、これはどういう意味ですか?

それ==は複雑であることを意味します。

複雑なので、使ったらどうなるかわかりにくいです。

つまり、バグが発生する可能性があります。

だから物語の教訓は...

あなたの人生をより簡単にしてください。

===代わりに使用してください==

終わり。

82
vsync 2010-05-13 02:58.

===同じ辺のタイプが等しいことを確認します


例:

'1' === 1 // will return "false" because `string` is not a `number`

一般的な例:

0 == ''  // will be "true", but it's very common to want this check to be "false"

別の一般的な例:

null == undefined // returns "true", but in most cases a distinction is necessary

何度も型指定されていない値がいずれかの場合は、あなたが気にしないので、チェックは便利だろうundefinednull0または""

73
Samar Panda 2015-09-06 03:53.

厳密な等式/比較のためのJavascript実行フロー図 '==='

非厳密な等式/比較のためのJavascript実行フロー図 '=='

55
Noname 2013-07-03 18:08.

JavaScript=== ==

0==false   // true
0===false  // false, because they are of a different type
1=="1"     // true, auto type coercion
1==="1"    // false, because they are of a different type
54
Pop Catalin 2010-05-13 02:59.

これは、型強制なしの同等性を意味します。型強制は、JavaScriptが他のデータ型を文字列データ型に自動的に変換しないことを意味します。

0==false   // true,although they are different types

0===false  // false,as they are different types

2=='2'    //true,different types,one is string and another is integer but 
            javaScript convert 2 to string by using == operator 

2==='2'  //false because by using === operator ,javaScript do not convert 
           integer to string 

2===2   //true because both have same value and same types 
48
Constantin 2008-12-17 04:29.

通常のスクリプトでは、パフォーマンスに違いはありません。さらに重要なのは、千の "==="が千の "=="よりも1KB重いという事実です:)JavaScriptプロファイラーは、ケースにパフォーマンスの違いがあるかどうかを教えてくれます。

しかし、個人的には、JSLintが提案することを行います。この推奨事項は、パフォーマンスの問題のためではなく、型強制手段('\t\r\n' == 0)が真であるためです。

46
CuongHuyTo 2011-09-17 04:25.

等しい比較演算子==は混乱を招くため、避ける必要があります。

あなたがいる場合する必要があり、それと一緒に暮らす、次の3つの事を覚えています:

  1. それは推移ではありません:(== b)は、および(B == C)につながらない(A == C)
  2. これは、その否定に対して相互に排他的です。(a == b)(a!= b)は、すべてaとbで、常に反対のブール値を保持します。
  3. 疑わしい場合は、次の真理値表を心から学んでください。

JAVASCRIPTの同等の演算子の真理値表

  • テーブルの各行は、相互に「等しい」3つの値のセットです。つまり、それらの間の2つの値は、等号*を使用して等しくなります。

** STRANGE:最初の列の2つの値はその意味で等しくないことに注意してください。**

''       == 0 == false   // Any two values among these 3 ones are equal with the == operator
'0'      == 0 == false   // Also a set of 3 equal values, note that only 0 and false are repeated
'\t'     == 0 == false   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
'\r'     == 0 == false   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
'\n'     == 0 == false   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
'\t\r\n' == 0 == false   // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

null == undefined  // These two "default" values are not-equal to any of the listed values above
NaN                // NaN is not equal to any thing, even to itself.
40
Sean 2008-12-12 04:44.

使用法において、2つの操作の間にパフォーマンスの違いが生じる可能性はほとんどありません。両方のパラメーターがすでに同じ型であるため、型変換を行う必要はありません。どちらの操作でも、タイプの比較とそれに続く値の比較が行われます。

38
Aniket Thakur 2014-11-14 20:02.

はい!それは問題である。

===javascriptの演算子は、値と型をチェックしますが、==演算子は値をチェックするだけです(必要に応じて型変換を行います)

簡単にテストできます。次のコードをHTMLファイルに貼り付けて、ブラウザで開きます

<script>

function onPageLoad()
{
    var x = "5";
    var y = 5;
    alert(x === 5);
};

</script>

</head>

<body onload='onPageLoad();'>

アラートで「false」が表示されます。ここで、onPageLoad()メソッドを変更するalert(x == 5);trueになります

33
Niraj CHoubey 2010-05-13 03:03.

=== 演算子は、変数の値とタイプが等しいかどうかをチェックします。

== 演算子は、変数の値が等しいかどうかをチェックするだけです。

32
Daniel 2010-05-13 03:19.

厳密なチェックテストです。

特に、0とfalseおよびnullの間をチェックしている場合は良いことです。

たとえば、次の場合:

$a = 0;

次に:

$a==0; 
$a==NULL; $a==false;

すべてtrueを返し、これは望ましくない場合があります。配列の0番目のインデックスまたは失敗時にfalseを返すことができる関数があるとしましょう。"==" falseでチェックすると、紛らわしい結果が得られる可能性があります。

したがって、上記と同じですが、厳密なテストを行います。

$a = 0; $a===0; // returns true
$a===NULL; // returns false $a===false; // returns false
31
ashes 2012-06-05 21:53.

JSLintは、変更する非現実的な理由を提供することがあります。タイプがすでに同じであるかのように、===まったく同じパフォーマンスを発揮し==ます。

タイプが同じでない場合にのみ高速になります。その場合、タイプを変換しようとせず、直接falseを返します。

したがって、IMHO JSLintを使用して新しいコードを作成することもできますが、無駄な過度の最適化は絶対に避けてください。

つまり、aは文字列にしかなり得ないという事実を知っているときのように、チェックで変更==する理由はありません。===if (a == 'test')

多くのコードをそのように変更すると、開発者とレビュー担当者の時間が無駄になり、何も達成されません。

30
Amit 2015-03-20 19:05.

単に

==手段の比較オペランド間 type conversion

===なしのオペランド間の比較を意味します type conversion

javaScriptでの型変換とは、javaScriptが他のデータ型を文字列データ型に自動的に変換することを意味します。

例えば:

123=='123'   //will return true, because JS convert integer 123 to string '123'
             //as we used '==' operator 

123==='123' //will return false, because JS do not convert integer 123 to string 
            //'123' as we used '===' operator 
26
Vikas 2015-05-15 04:45.

簡単な例は

2 == '2'  -> true, values are SAME because of type conversion.

2 === '2'  -> false, values are NOT SAME because of no type conversion.
25
mar10 2013-04-28 04:15.

経験則として、私は通常、の===代わりに==(およびの!==代わりに!=)を使用します。

理由は上記の回答で説明されており、ダグラス・クロックフォードもそれについてかなり明確です(JavaScript:The Good Parts)。

ただし、1つの例外があります== null「がnullまたは未定義」をチェックする効率的な方法です:

if( value == null ){
    // value is either null or undefined
}

たとえば、jQuery 1.9.1はこのパターンを43回使用し、JSHint構文チェッカーeqnullはこの理由でリラックスオプションを提供します。

jQueryのスタイルガイド:

==を優先して、厳密な等価性チェック(===)を使用する必要があります。唯一の例外は、nullを使用してundefinedとnullをチェックする場合です。

// Check for both undefined and null values, for some important reason. 
undefOrNull == null;
25
Harry He 2013-09-09 22:31.

上記の両方の回答の上位2つは、==は平等を意味し、===は同一性を意味します。残念ながら、このステートメントは正しくありません。

==の両方のオペランドがオブジェクトである場合、それらが同じオブジェクトであるかどうかを確認するために比較されます。両方のオペランドが同じオブジェクトを指している場合、equal演算子はtrueを返します。そうでなければ、2つは等しくありません。

var a = [1, 2, 3];  
var b = [1, 2, 3];  
console.log(a == b)  // false  
console.log(a === b) // false  

上記のコードでは、aとbが同じオブジェクトではないため、==と===の両方がfalseになります。

つまり、==の両方のオペランドがオブジェクトである場合、==は===と同じように動作します。これは、同一性も意味します。この2つの演算子の本質的な違いは、型変換に関するものです。==は、等しいかどうかをチェックする前に変換されますが、===は変換されません。

22
Thomas Hansen 2008-12-30 01:54.

問題は、JavaScriptには暗黙の変換がたくさんあるため、簡単に問題が発生する可能性があることです...

var x = 0;
var isTrue = x == null;
var isFalse = x === null;

これはすぐに問題になります。暗黙的な変換が「悪」である理由の最良のサンプルは、CStringからポインタtypedefタイプであるHANDLEへの暗黙的な変換のために実際にコンパイルされるMFC / C ++のこのコードから取得できます。

CString x;
delete x;

これは明らかに実行時に非常に未定義のことを行います...

それに対する議論のいくつかを得るためにC ++とSTLでの暗黙の変換のためのグーグル...

22
Paul Butcher 2010-05-13 02:59.

コアJavaScriptリファレンス

===trueオペランドが厳密に等しい場合(上記を参照)、型変換なしで戻ります。

21
user2601995 2013-10-03 11:54.

同等性の比較:

オペレーター ==

両方のオペランドが等しい場合、trueを返します。オペランドは、比較される前に同じタイプに変換されます。

>>> 1 == 1
true
>>> 1 == 2
false
>>> 1 == '1'
true

同等性とタイプの比較:

オペレーター ===

両方のオペランドが等しく、同じタイプの場合、trueを返します。このように比較すると、舞台裏での型変換がないため、一般的に優れており、安全です。

>>> 1 === '1'
false
>>> 1 === 1
true
20
Christian Hagelid 2014-03-27 14:18.

ここで起こる変換との間の違いを示す便利な比較表である==とは===

結論が述べているように:

「2等号で行われる変換を完全に理解していない限り、3等号を使用してください。」

http://dorey.github.io/JavaScript-Equality-Table/

20
vivek_nk 2014-04-14 23:28.

nullとundefinedは無です。つまり、

var a;
var b = null;

ここabは、値はありません。一方、0、false、および ''はすべて値です。これらすべてに共通することの1つは、それらがすべて偽の値であるということです。つまり、すべて偽の条件を満たすことを意味します。

したがって、0、false、および ''は一緒にサブグループを形成します。一方、nullとundefinedは2番目のサブグループを形成します。下の画像の比較を確認してください。nullとundefinedは等しくなります。他の3つは互いに等しくなります。ただし、JavaScriptではこれらはすべて偽の条件として扱われます。

これは他のオブジェクト({}、配列など)と同じであり、空でない文字列とブール値trueはすべて真の条件です。しかし、それらはすべて同じではありません。

Related questions

MORE COOL STUFF

「水曜日」シーズン1の中心には大きなミステリーがあります

「水曜日」シーズン1の中心には大きなミステリーがあります

Netflixの「水曜日」は、典型的な10代のドラマ以上のものであり、実際、シーズン1にはその中心に大きなミステリーがあります.

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ボディーランゲージの専門家は、州訪問中にカミラ・パーカー・ボウルズが輝くことを可能にした微妙なケイト・ミドルトンの動きを指摘しています

ケイト・ミドルトンは、州の夕食会と州の訪問中にカミラ・パーカー・ボウルズからスポットライトを奪いたくなかった、と専門家は言う.

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンがハリー・スタイルズとオリビア・ワイルドの「非常に友好的な」休憩が永続的であることを望んでいる理由

一部のファンが、オリビア・ワイルドが彼女とハリー・スタイルズとの間の「難しい」が「非常に友好的」な分割を恒久的にすることを望んでいる理由を見つけてください.

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする 

エリザベス女王の死後、ケイト・ミドルトンはまだ「非常に困難な時期」を過ごしている、と王室の専門家が明らかにする&nbsp;

エリザベス女王の死後、ケイト・ミドルトンが舞台裏で「非常に困難な時期」を過ごしていたと伝えられている理由を調べてください.

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セントヘレナのジェイコブのはしごを登るのは、気弱な人向けではありません

セント ヘレナ島のジェイコブズ ラダーは 699 段の真っ直ぐ上る階段で、頂上に到達すると証明書が発行されるほどの難易度です。

The Secrets of Airline Travel Quiz

The Secrets of Airline Travel Quiz

Air travel is far more than getting from point A to point B safely. How much do you know about the million little details that go into flying on airplanes?

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

Westworldの遊び方:Amazonエコーのない迷路

Westworldの遊び方:Amazonエコーのない迷路

Westworldの第2シーズンが終わり、次の1、2年は楽しいがやや混乱するシリーズでモーター機能が凍結するので、次に何をすべきかについて少し迷うかもしれません。ビンジウォッチングする別の番組を見つけますか?さらに多くのファン理論を読み直しますか?お気に入りの1990年代のオルタナティブロックソングの楽しいオールドタイムの​​ピアノカバーを書き始めますか?心配しないでください。長い待ち時間が始まる前に、Westworldのヒットをもう1つ得ることができます。

ジャネールモネイは彼女のプライドで周りをファックしませんでしたBETアワードを見てください

ジャネールモネイは彼女のプライドで周りをファックしませんでしたBETアワードを見てください

2018 BETアワードは、日曜日の夜にロサンゼルスで開催されました。プライド月の真ん中に軽くたたきます。見た目はいたるところに強かったが、ジャネール・モネイのように誰もそれをしなかった。

リットウッドで2000年代と2010年代の車を祝うために2038年に会いましょう

リットウッドで2000年代と2010年代の車を祝うために2038年に会いましょう

他の期間をテーマにした自動車展示会、特に1980年代と90年代の自動車ショーRadwoodの最近の成功に続いて、私は2000年代と2010年代の自動車文化を祝う自動車ショーであるLitwoodを立ち上げることにしました。私は今これについてディブを呼んでいます。

リチャードは堅実なシリコンバレーで彼の会社の将来のためにビットコインを裏返します

リチャードは堅実なシリコンバレーで彼の会社の将来のためにビットコインを裏返します

数週間前のシリコンバレーの第5シーズンのプレミアのレビューで、ショーはその高齢で問題を抱え続けていますが、才能のあるキャストとそのひねくれたユーモアのセンスを備えた頑丈な基盤からまだ機能していると主張しました。そして、シーズンの終わりに近づくにつれて、その点は持ちこたえてきました。

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、彼らが子供たちと行っているスパイをテーマにした活動を共有しています

ケイト・ミドルトンとウィリアム王子は、子供向けのパズルの本の序文を書き、ジョージ王子、シャーロット王女、ルイ王子と一緒にテキストを読むと述べた.

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

事故で押しつぶされたスイカは、動物を喜ばせ水分補給するために野生生物保護団体に寄付されました

Yak's Produce は、数十個のつぶれたメロンを野生動物のリハビリ専門家であるレスリー グリーンと彼女のルイジアナ州の救助施設で暮らす 42 匹の動物に寄付しました。

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

デミ・ロヴァートは、新しいミュージシャンのボーイフレンドと「幸せで健康的な関係」にあります: ソース

8 枚目のスタジオ アルバムのリリースに向けて準備を進めているデミ ロヴァートは、「スーパー グレート ガイ」と付き合っている、と情報筋は PEOPLE に確認しています。

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

イーサン プラスの誕生日のお祝いは、TLC のウェルカム トゥ プラスビルのシーズン 4 のフィナーレで、戦争中の母親のキム プラスと妻のオリビア プラスを結びつけました。

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

仕事の生産性を高める 8 つのシンプルなホーム オフィスのセットアップのアイデア

ホームオフィスのセットアップ術を極めよう!AppExert の開発者は、家族全員が一緒にいる場合でも、在宅勤務の技術を習得しています。祖父や曽祖父が共同家族で暮らしていた頃の記憶がよみがえりました。

2022 年、私たちのデジタル ライフはどこで終わり、「リアル ライフ」はどこから始まるのでしょうか?

20 年前のタイムトラベラーでさえ、日常生活におけるデジタルおよびインターネットベースのサービスの重要性に驚くことでしょう。MySpace、eBay、Napster などのプラットフォームは、高速化に焦点を合わせた世界がどのようなものになるかを示してくれました。

ニューロマーケティングの秘密科学

ニューロマーケティングの秘密科学

マーケティング担当者が人間の欲望を操作するために使用する、最先端の (気味が悪いと言う人もいます) メソッドを探ります。カートをいっぱいにして 3 桁の領収書を持って店を出る前に、ほんの数点の商品を買いに行ったことはありませんか? あなたは一人じゃない。

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

地理情報システムの日: GIS 開発者として学ぶべき最高の技術スタック

私たちが住んでいる世界を確実に理解するには、データが必要です。ただし、空間参照がない場合、このデータは地理的コンテキストがないと役に立たなくなる可能性があります。

Language