вторник, 26 ноября 2013 г.

JSLint и JSHint - грамотные помощники JavaScript программиста


Валидация в JavaScript очень серьезное дело, бывает такое что усталость может создавать потенциальные проблемы в синтаксисе и логике кода. Выход есть, JSLint или JSHint. Последний является форком от JSLint. 

Данный инструментарий не идеален, нужно это признавать, но "обезопасить" себя на случай каких либо "брешей в безопасности" и.т.д. можно и нужно... Вы можете зайти на один из них, ввести свой код и посмотреть есть ли в коде "узкие места". Вот что пишут про JSLint:
JSLint сканирует JavaScript код. Если он находит проблему, то возвращает сообщение с описанием и местонахождение в коде. Проблема это не обязательно ошибка синтаксиса, хотя часто так и есть. JSLint так-же обращает внимание на соглашения о кодировании а так же на проблемы в структуре. Он не доказывает что ваша программа работает верно.Он просто предоставляет еще один взгляд на ваш код.” – JSLint Documentation


JSHint создается программистом из Сан Франциско Антоном Ковалевым и вот кто пользуется данным продуктом в своей повседневной работе:
Список немалый. Какой из них выбрать и пользоваться, тут уже на вкус и цвет... Главное работать на результат. Кстати в IDE от компании JetBrains имеется встроенный анализ JSLint, последнее время эта IDE меня завораживает...

Using JSLint

Пример взят из обзорной статьи о JSLint http://net.tutsplus.com/tutorials/javascript-ajax/quick-tip-using-jslint/

До JSLint

  1. (function () {  
  2.   
  3.     var anObject = {};  
  4.     var anElem = document.getElementById("wrap");  
  5.     var aString = "This is a string"  
  6.       
  7.   
  8.     if (aString === "This is a string") {  
  9.         anotherString = aString;  
  10.     }  
  11.   
  12.     function person(name, age) {  
  13.         this.name = name;  
  14.         this.age  = age;  
  15.     }  
  16.   
  17.     var aPerson = new person("John", 25);  
  18.   
  19. }());  

После JSLint

  1. /*jslint white: true, browser: true, onevar: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, newcap: true, immed: true, strict: true */  
  2. "use strict";  
  3. (function () {  
  4.   
  5.     var anObject = {}, aPerson, anotherString,  
  6.         anElem = document.getElementById("wrap"),  
  7.         aString = "This is a string";  
  8.       
  9.   
  10.     if (aString === "This is a string") {  
  11.         anotherString = aString;  
  12.     }  
  13.   
  14.     function Person(name, age) {  
  15.         this.name = name;  
  16.         this.age  = age;  
  17.     }  
  18.   
  19.     aPerson = new Person("John", 25);  
  20.   
  21. }());  

Еще немного интересных статей:

Комментариев нет:

Отправить комментарий