Конфиг grunt jshint не работает
Возникли проблемы при настройке параметров jshint для grunt
Вот мой gruntfile.js
grunt.initConfig( {
jshint : {
options: {
curly: false,
asi: true,
eqeqeq: false,
maxparams: 5,
undef: false,
unused: false,
eqnull: true,
browser: true,
devel: true,
expr: true,
jquery: true ,
evil : true
},
files : {
src : [
'dev/*.js', 'dev/**/*.js' ,
'files-lib/*.js', 'files-lib/**/*.js' ]
},
},
все еще получаю ошибки
71 | return (this.optional(element) && value=="") || re.test(значение); ^ Используйте '===' для сравнения с ''.
Спасибо за помощь
1 ответ
краткий ответ: Вы ничего не можете сделать в своем options
Конфигурация, чтобы избежать этого.
более длинный ответ: хотя у вас есть eqeqeq
свойство установлено в false
в вашем options
конфигурация, (которая предполагает экземпляры двойных равных ==
не должен выдавать ошибку), jshint
в этом случае я считаю, что правильно сообщает об этом как об ошибке.
value==""
часть в проверяемом коде - это то, что выдает ошибку (т.е. игнорирует eqeqeq: false
вариант). Это не зря!
==
Оператор будет сравнивать на равенство после выполнения любых необходимых преобразований типов, что может привести к действительно странным результатам в Javascript. Например:
0 == "" // true
false == "" // true
Хотя я понимаю, что двойное равенство дает правильный результат для многих сценариев сравнения, это value==""
Примером, безусловно, является сценарий, в соответствии с которым следует использовать тройное равенство, или, если вы человек с двумя равными, то вы можете заменить value==""
с value.length == 0
Дополнительную информацию относительно операторов тройного равенства и двойного равенства, а также их различных причуд, можно найти в ответе на этот пост.