簡體   English   中英

為什么JSLint告訴我使用“=== undefined”而不是“typeof ... ==='undefined'”?

[英]Why does JSLint tell me to use “=== undefined” instead of “typeof … === 'undefined'”?

我編碼如下:

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

但JSLint說:

警告3 JS Lint:意外的'typeof'。 使用'==='直接與undefined進行比較。

我該如何更改代碼?

可能通過使用

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

jslint沒有問題(假設showTitles和showSelectGroup用var聲明)

但是,我會把它寫成

var showTitles = showTitles || 'Y';
var showSelectGroup = showSelectGroup || 'Y';

請注意,這是否是一般的最佳做法是值得商榷的,但如果您想使它與JSLint一起使用,您可以這樣做

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

此消息反映了最新的最佳做法。 從ES5嚴格模式開始, undefined的全局值不再可以更改 ,直接比較更簡單,代碼更快。 簡而言之, JSLint意識到了這一切 ,並為您提供了很好的建議。

在這種情況下,將typeof showTitles !== 'undefined'showTitles === undefined更改為showTitles === undefined

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM