2015-07-04 6 views
6

Я установил Dreamweaver CC 2015 и выяснил, что у меня есть ошибки MYRIAD в моих рабочих файлах JavaScript. Также у меня есть ошибки MYRIAD в импортированных библиотеках JavaScript, включая jQuery.Странная проверка Javascript в Dreamweaver CC

Самое важное «ошибка» это один в начале каждой рабочей функции:

Missing "use strict" statement. 

Он работал очень хорошо без «использовать строгий», и я никогда даже не видел этого заявления в любом месте.

Другой странный один:

Extending prototype of native object: 'Array'. 

Вот код, который вызывает предупреждение:

Array.prototype.sortOn = function(key){ 
    this.sort(function(a, b){ 
     if(a[key] < b[key]){ 
      return -1; 
     }else if(a[key] > b[key]){ 
      return 1; 
     } 
     return 0; 
    }); 
}; 

Так что мои варианты:

  1. Ditch Dreamweaver и использовать другой IDE (хуже, потому что он отлично работает для моих целей - я единственный разработчик HTML/CSS/JS/PHP/MySQL в своем проекте.
  2. Исправить все ошибки, подобные Dreamweaver, потому что у него хорошая точка. Тогда, пожалуйста, объясните, почему? Я в порядке с изменением «==» на «===», добавлением «var» перед объявлениями переменных, а не с использованием «return» после «if» без фигурных скобок, но «использование строгой» вещи меня беспокоит.
  3. Подтвердите проверку JavaScript, поэтому отображаются только критические ошибки - лучший вариант для меня - но я не знаю, КАК это сделать?

С чем лучше всего пойти? Любая помощь очень ценится.

ответ

11

Вот что я понял.

Проблема заключалась в том, что я не знал о решениях JSHint и JSLint для проверки javascript. JSHint интегрирован в Dreamweaver CC и легко настраивается, если вы знаете, что делать.

Обычно JSHint has three ways to tweak it, но они не работают в среде Dreamweaver.

Что вы должны сделать, это:

  • в верхнем меню выберите Edit -> Preferences (Dreamweaver -> Настройки на Mac)
  • Выберите "пыление" в боковом меню.
  • Выберите «JS» и нажмите «Изменить и сохранить изменения».
  • Файл JS.jshintrc будет открыт в Dreamweaver.
  • Редактируйте файл, как обычно, (see JSHint options) и сохраните его.

В моем конкретном случае, я изменил это:

"strict":false, 
"undef":false, 
"unused":false 

... а это значит, что я не должен ставить «использовать строгий» везде и может оставить определение и использование переменных в разных файлах , ДА, я не использую функции обертки и использую много глобальных переменных.ДА, я знаю, что это плохо, но рефакторинг это не самый высокий приоритет в моем графике.

Конечно, я изменю все три этих параметра на «истинные» и реорганизую все мои JS-файлы, чтобы соответствовать стандартам, когда придет время.

+1

Спасибо. Эта проблема не очень хороша для jQuery, – Mistergreen

+2

Как включить проверку для ожидаемого этого '===' saw '==' this –

+0

Акаш Кумар, просто измените «eqnull»: false на «eqnull»: true –

0

Отключение проверки «undef» является кувалдой, так как JSHint затем игнорирует все опечатки переменных и имен функций. Вы не найдете опечатку до времени выполнения, что раздражает и тратит время.

Вместо того, чтобы полностью отключать сообщения «undef», я использовал JSHint Inline Directives в верхней части моих .js-файлов. Например:

/* globals myGlobalVar, myGlobalFunction */ 
var myLocalVar = myGlobalVar; 
myGlobalFunction(); 

С директивой глобал в файле, JSHint не отметит myGlobalVar или myGlobalFunction(), как неопределенные ошибок. Использование встроенных директив «globals» имеет дополнительное преимущество для документирования зависимостей между вашими файлами .js.

Читайте о JSHint встроенных директив здесь:

http://jshint.com/docs/#inline-configuration