JSLintオプション考察「bitwise operators」

2013年06月25日

カテゴリー:

JSLintのオプショングループ「Tolerate」ではJSLintのコードチェックにおける「規制緩和」を行います。
今回はその中の「bitwise operators」についてです。

「bitwise operators」オプションは、ビット演算子の使用を許可するかどうかのオプションです。デフォルト(false)ではビット演算子の使用は許可されません。

function func() {
    "use strict";

    var num = 0;

    num = num & 0;    //Unexpected '&'.
    num = num | 0;    //Unexpected '|'.
    num = num ^ 0;    //Unexpected '^'.

    return num;
}

このオプションが false の場合、上記のコードの6~8行目でそれぞれ「Unexpected~」の警告が出ます。これは許可されていないビット演算子が式に含まれているためです。

JavaScriptでは内部的に数値は全て浮動小数点数として処理されます。しかし、ビット演算子は整数に対して使用されるため対象の値は32ビットの整数に変換されてから処理されます。
その為、整数ではない数値や、32ビットで表すことが可能な整数を越える大きな整数に対してビット演算子を使用する場合は予期しない結果になる場合があります。

またJavaScriptにおいてはビット演算子が必要となるケースやメリットがほとんど無いなどの理由から、ビット演算子の使用は非推奨とされているようです。

これらのことを理解した上で、それでもなおビット演算が必要な場合を除きこのオプションはデフォルト(false)のままで良いでしょう。

JSLintのオプション一覧ページへ