JavaScriptは少し変です!


おい人々、あなたがすべてをしていることを願ってください.
今日はJavaScript言語について本当に奇妙な奇妙なことについて話したかった.
基本から始めましょう.

JavaScriptとは


まあ.Javascript はECMAScript標準に準拠したスクリプト言語です.そして、あなたが知っている、その最初のリリースは、1995年12月にわずか10日で建てられました.

私が話していたこと。


しかし、JSは少しwierdです、そして、それはあなたが考えるかもしれない方法をふるまいません、そして、予想された出力を生じません.
注:シニアJS開発者はこれらのシンタックスの一部を使用しません.このポストは、どれだけ風変わりなJSが得ることができるかを示すためです.

話は安い、コードを見せてください


ここに行く.
if(0.2+0.1 == 0.3){
  console.log("Foo");
}else{
  console.log("bar");
}
出力バー
出力を期待してみてください.しかし、それはキャッチです、あなたがそれのような何かをするならば、あなたはそれがなぜ「バー」を記録するかについて見ることができます.
console.log(0.2+0.1);   //0.30000000000000004
したがって、明らかに、0.30000000000000004は0.3に等しくない
OK、次の1つ.
console.log([,].length);  //1
したがって、配列には2つの要素があります.コンマとそれの後の1つ(彼らが空であるけれども)の1つ.しかし、JSは1つの要素としてこれを扱います.JSでは、配列の最後の位置(最後のコンマの後)まで値を渡すまでは、これを値として扱うことはなく、配列に挿入することはできませんが、他の位置ではそうではありません.
最後のコンマはtrailing comma
例を示します.
console.log([1,2,].length);  //2
console.log([,,3].length);   //3
ここで、最後の位置に何も渡さないと、配列の長さは2ですが、最後の位置だけを通過するときには、他のすべての値を数えます.
もう一つ
我々のすべての1つまたは我々のコーディングの旅の時点で他のポイントは、インクリメント演算子を使用した.
JSでそれを見ましょう.
console.log(++1);  //Error
console.log(++true);  //Error
インクリメント演算子はJSに存在しないかもしれません.しかし、私は構文は絶対に正しいことを教えてみましょう.
let foo=1;
console.log(++foo);  //2
let bar = true;
console.log(++bar);  //2 
これは有効な構文ですが、変数でのみ動作します.
そして、これはJSだけではありません、Java、Cとより多くのプログラミング言語と同じように動作します.
最後のもの
console.log((10,2));  //2
console.log((2+1,3+1,1));  //1
console.log((2-1,3*1,1+1));  //2
The comma operator 左から右へのオペランドを評価しますが、最後のオペランドだけを返します.

最後の思考


ですから、JSはちょっとおかしな言語で、私たちが考えていることと同じように動作しないという事実について、皆さんと私に同意すると思います.
あなたがJSが十分にWierdでないと思うならば、下記のコメントで私に知らせてください、そして、私は多分、JSが持っているより多くの風変わりについて、もう一つのポストを作ります.
OK、それで、それは鳴っているumang mittalです.