「2==1==0 → true」ワイ「!?」


どういうことか

まず最初の2項に注目します。
2==1はfalseですよね。

ということは、実際のところはfalse==0を評価することになります。
JSの==は暗黙の型変換を行うので、falseと0は等価となり、最終の結果はtrueになります。

/* こう書くとわかりやすいかも */
(2==1)==0 //true

なので、下記画像のように左側の式をどれだけ長くしようが、結果はtrueです。

10==9==8==7==6==5==4==3==2==1はfalseなので、結局のところはfalse==0を評価しているだけに過ぎません。

元ネタ

Twitterで見つけたネタです。