![](/img/trans.png)
[英]why does JSLint recommend x === “undefined” vs. typeof x == “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.