垂直バー、その後ゼロ

見出しは言葉で表現され、検索性のためだけに必要でした。 ただし、JavaScriptでのシンボリック 構造「 | 0 」の役割について説明します。



最初に気づいたのは、 asm.jsに関するFAQを翻訳し、JavaScript言語のこのサブセットの仕様を読んだときです。 そこで、「 | 0 」は、たとえば、関数から返される値のタイプを示すのに役立ちます。値の後に | 0 」が表示された場合、符号付き整数があることを意味します。



突然、Github のサンプルコード で「 | 0 」の構築に気づきました。そこでは、1024²で除算した結果の整数への変換がありました。



それから私の目が開き、素晴らしい機会を見ました。



( 3|0 ) === 3; //     ( 3.3|0 ) === 3; //       ( 3.8|0 ) === 3; //  ,      ( -3.3|0 ) === -3; //         ( -3.8|0 ) === -3; //   Math.floor(-3.3) == Math.floor(-3.8) == -4 ( "3"|0 ) === 3; //        ( "3.8"|0 ) === 3; //        ( "-3.8"|0 ) === -3; //         ( NaN|0 ) === 0; // NaN    ( Infinity|0 ) === 0; //       , ( -Infinity|0 ) === 0; //    , ( null|0 ) === 0; //   null, ( (void 0)|0 ) === 0; //   undefined, ( []|0 ) === 0; //    , ( [3]|0 ) === 3; //        , ( [-3.8]|0 ) === -3; //       , ( [" -3.8 "]|0 ) === -3; //         , ( [-3.8, 22]|0 ) === 0 //        ( {}|0 ) === 0; //       ( {'2':'3'}|0 ) === 0; //    ( (function(){})|0 ) === 0; //       ( (function(){ return 3;})|0 ) === 0; //   
      
      





そのため、まず、小数部分を破棄する便利な手段があります。





次に、さまざまな型を整数に変換する便利な手段があります。





このツールのアクションを観察するには、JavaScriptガーデン (およびJavaScriptガーデン推奨される数値(値の前の" + " )と比較して、数値に変換する必要があります。



このような比較では、プラス小数に変換され、負の無限大(たとえば、 + [」-Infinity "] "から得られるまたはNaN ( " + {} "から得られる )、 | 0 整数に変換されるため、エキゾチックなオプションはリセットされます。



この手法は、必要に応じてJavaScriptコードで広く使用することをお勧めします。



All Articles