14

私は以下をコーディングしました:

showTitles = (typeof showTitles !== 'undefined') ? showTitles : 'Y';
showSelectGroup = (typeof showSelectGroup !== 'undefined') ? showSelectGroup : 'Y';

しかし、JSLintは次のように言っています。

警告3JSLint:予期しない「typeof」。'==='を使用して、undefinedと直接比較します。

コードをどのように変更すればよいですか?

4

3 に答える 3

9

おそらく使用することによって

showTitles = (showTitles === undefined) ? 'Y' : showTitles;
showSelectGroup = (showSelectGroup === undefined) ? 'Y' : showSelectGroup;

jslintには問題はありません(showTitlesとshowSelectGroupがvarで宣言されていると仮定します)

しかし、私はそれを次のように書きます

var showTitles = showTitles || 'Y';
var showSelectGroup = showSelectGroup || 'Y';
于 2012-09-27T18:45:36.597 に答える
8

これが一般的にベストプラクティスであるかどうかは議論の余地がありますが、JSLintで機能させたい場合は、これを行うことができます。

showTitles = (showTitles !== undefined) ? showTitles : 'Y';
于 2012-09-27T18:45:54.070 に答える
7

このメッセージは、最新のベストプラクティスを反映しています。ES5 strictモード以降、のグローバル値はundefined 変更できなくなり、直接比較はより単純なコードでより高速になります。つまり、JSLintはこれらすべてを認識しており、優れたアドバイスを提供しています。

この場合、に変更typeof showTitles !== 'undefined'してshowTitles === undefinedください。

于 2015-12-01T03:22:35.033 に答える