Використання `var` чи ні
Вам слід ввести будь-яку змінну з var
твердженням, інакше вона потрапить до глобальної сфери.
Варто зазначити, що в суворому режимі ( "use strict";
) незадекларовані змінні задачі кидаютьReferenceError
.
В даний час JavaScript не має області блоку. Школа Крокфорда вчить вас ставити заяви var на початку функції функції , тоді як Довідник стилю Доджо читає, що всі змінні повинні бути оголошені в найменшому обсязі . ( let
Заява та визначення, введені в JavaScript 1.7, не є частиною стандарту ECMAScript.)
Доброю практикою є зв'язування властивостей об'єктів, які регулярно використовуються, до локальних змінних, оскільки це швидше, ніж пошук по всьому ланцюгу областей. (Див. Розділ Оптимізація JavaScript для надзвичайної продуктивності та низького споживання пам’яті .)
Визначення речей у файлі чи у `(function () {...}) ()`
Якщо вам не потрібно дотягуватись до своїх об'єктів за межами коду, ви можете загортати весь код у вираз функції - - це називається шаблон модуля. Він має переваги щодо продуктивності, а також дозволяє мінімізувати та затемняти ваш код на високому рівні. Ви також можете переконатися, що він не забруднить глобальний простір імен. Функції загортання в JavaScript також дозволяють додати орієнтовану на аспекти поведінку. У Бен Черрі є поглиблена стаття про модель модуля .
Використання "цього" чи ні
Якщо ви використовуєте псевдокласичне успадкування в JavaScript, навряд чи уникнете використання this
. Справа в смаку, який шаблон спадкування ви використовуєте. В інших випадках перегляньте статтю Пітера Мішо про віджети JavaScript без "цього" .
Використання `function myname ()` або `myname = function ();`
function myname()
є оголошенням функції та myname = function();
виразом функції, присвоєним змінній myname
. Остання форма вказує на те, що функції є першокласними об'єктами, і ви можете робити з ними що завгодно, як зі змінною. Єдина відмінність між ними полягає в тому, що всі декларації функцій піднімаються до верхньої частини області, що може мати значення в певних випадках. Інакше вони рівні. function foo()
є скороченою формою. Більш детальну інформацію про вантажопідйомні пристрої можна знайти в статті Оцінка та піднімання JavaScript .
Визначення методів в тілі об'єкта або використання "прототипу"
Тобі вирішувати. У JavaScript є чотири шаблони створення об'єктів: псевдокласична, прототипічна, функціональна та частини ( Crockford, 2008 ). У кожного є свої плюси і мінуси, перегляньте Крокфорд у своїх відео-переговорах або отримайте його книгу «Гарні частини», як вже запропонував Анон .
Каркаси
Я пропоную вам підібрати деякі рамки JavaScript, вивчити їх умовності та стиль та знайти ті практики та зразки, які найкраще підходять вам. Наприклад, інструментарій Dojo пропонує надійну основу для написання об'єктно-орієнтованого коду JavaScript, який навіть підтримує багатократне успадкування.
Візерунки
Нарешті, є блог, присвячений вивченню загальних моделей JavaScript та анти-шаблонів . Також ознайомтеся з питанням Чи існують стандарти кодування для JavaScript? у стеку переповнення.