我编码了以下内容:
showTitles = (typeof showTitles !== 'undefined') ? showTitles : 'Y';
showSelectGroup = (typeof showSelectGroup !== 'undefined') ? showSelectGroup : 'Y';
但是JSLint说:
警告3 JS Lint:意外的'typeof'。使用'==='直接与undefined进行比较。
我应该如何更改我的代码?
答案 0 :(得分:9)
可能使用
showTitles = (showTitles === undefined) ? 'Y' : showTitles;
showSelectGroup = (showSelectGroup === undefined) ? 'Y' : showSelectGroup;
jslint没有问题(假设showTitles和showSelectGroup用var声明)
但是,我把它写成
var showTitles = showTitles || 'Y';
var showSelectGroup = showSelectGroup || 'Y';
答案 1 :(得分:8)
请注意,这是否是一般的最佳做法是值得商榷的,但如果您想使其适用于JSLint,您可以这样做
showTitles = (showTitles !== undefined) ? showTitles : 'Y';
答案 2 :(得分:7)
此消息反映了最新的最佳做法。从ES5严格模式开始,undefined
can no longer be changed的全局值和直接比较更简单,代码更快。简而言之,JSLint is aware of all this,并给你很好的建议。
在这种情况下,请将typeof showTitles !== 'undefined'
更改为showTitles === undefined
。