繁体   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