0

Код конвенции за JavaScript език за програмиране на Помилка?

Първоначално в http://javascript.crockford.com/code.html. Отидете на главната страница.

Това е набор от кодиране конвенции и правила за използване в JavaScript програмиране. Тя е вдъхновена от документ Код конвенции Sun за Java език за програмиране. Тя е силно модифициран разбира, защото JavaScript не е Java.

Дългосрочната стойността на софтуер за организация е в пряка зависимост от качеството на програмния код. През целия си живот, а програмата ще бъдат обработени от много чифта ръце и очи. Ако програмата е в състояние ясно да комуникира своята структура и характеристики, то е по-малко вероятно, че ще се счупи при променени в никога не твърде далечното бъдеще.

Код конвенции могат да помогнат за намаляване на крехкостта на програми.

Всички наши JavaScript код се изпраща директно на обществото. Тя трябва да бъде винаги на качеството публикуване.

Подреденост обвинения.

JavaScript файлове

Програми JavaScript трябва да се съхраняват в и доставени като .js файлове.

JavaScript код не трябва да се вгражда в HTML файлове, освен ако кодът е специфична за една сесия. Код в HTML добавя значително към pageweight, без възможност за смекчаване от кеширане и компресия.

<script SRC = filename.js> етикетите трябва да се поставят най-късно в тялото, колкото е възможно. Това намалява ефекта от забавяния, наложени от скрипт натоварване върху други компоненти на страници. Не е необходимо да използвате езиковите или тип атрибути. Това е сървър, не маркера скрипт, който определя типа MIME.

Вдлъбнатина

Единицата за отстъп е четири пространства. Използване на разделите трябва да се избягва, защото (както и на това писание през 21 век) все още не е стандарт за поставянето на tabstops. Използването на пространства може да произведе по-голям размер на файла, но размерът им да е значително над локални мрежи, и разликата се елиминира чрез minification.

Дължина линия 

Избягвайте линии по-дълги от 80 знака. Когато декларация, която не се побира на един ред, може да се наложи да я прекъсне. Място на почивката след оператор, в идеалния случай след запетая. A пауза след операторът намалява вероятността за грешка копие-паста ще бъде закрита от точка и запетая вмъкване. Следващият ред трябва да се отмества 8 пространства.

Коментари

Бъдете щедри с коментари. Полезно е да се оставят информация, която ще се чете по-късно от хора (вероятно сами), които ще трябва да се разбере това, което сте направили. Коментарите трябва да са добре написани и ясни, точно като кода се анотиране. От време на време самородно за хумор може да бъде оценено. Разочарованието и недоволството няма.

Важно е, че коментарите са непрекъснато актуализирани. Невярно коментари могат да правят програми за още по-трудно за четене и разбиране.

Направи коментари смислено. Съсредоточете се върху това, което не е непосредствено видимо. Не си губете времето на читателя с такива неща

i = 0; // Определете i до нула.

Обикновено се използва коментари линия. Спестете блокови коментари за официална документация.

Декларации на променливи

Всички променливи следва да бъдат декларирани преди използват. JavaScript не изисква това, но по този начин прави програмата по-лесно да се чете и прави по-лесно да откриват недекларирани променливи, които могат да станат мълчаливи глобални. Никога не трябва да се използват Подразбиращите глобални променливи. Използване на глобални променливи трябва да се сведе до минимум.

Отчета VaR, трябва да бъде на първото изложение в организма функция.

За предпочитане е, че всяка променлива да се даде на отделен ред и коментар. Те следва да бъдат изброени по азбучен ред, ако е възможно.

 var currentEntry, // currently selected table entry
        level,        // indentation level
        size;         // size of table

Функция декларации

Всички функции трябва да бъдат обявени преди те да бъдат използвани. Вътрешните функции трябва да следват отчета за Var. Това помага да се изясни какви променливи са включени в нейния обхват.

Не трябва да има интервал между името на функция и ((лява скоба) на своя списък параметър. Трябва да има един интервал между) (вдясно скобите) и {(лява фигурна скоба), който започва на тялото изявление. Самото тяло се отмества четири пространства. The} (дясна фигурна скоба) се изравни с линията, съдържаща началото на декларацията на функцията.

function outer(c, d) {
        var e = c * d;

        function inner(a, b) {
            return (e * a) + b;
        }

        return inner(0, 1);
    }

Тази конвенция работи добре с JavaScript, защото в JavaScript, функции и обект литерали могат да бъдат поставени навсякъде, че израз е позволено. Тя осигурява най-добрата четивност с вградени функции и сложни структури.

function getElementsByClassName(className) {
        var results = [];
        walkTheDOM(document.body, function (node) {
            var array,                // array of class names
                ncn = node.className; // the node's classname

// If the node has a class name, then split it into a list of simple names.
// If any of them match the requested name, then append the node to the list of results.

            if (ncn && ncn.split(' ').indexOf(className) >= 0) {
			    results.push(node);
            }
        });
        return results;
    }


Ако една функция буквално е анонимен, трябва да има един интервал между думата функция и ((ляво скобите). Ако пространството е omited, тогава той може да се окаже, че името на функцията е функция, която е неправилен прочит.

 div.onclick = function (e) {
        return false;
    };

    that = {
        method: function () {
            return this.datum;
        },
        datum: 0
    };

Използване на глобалните функции трябва да бъдат сведени до минимум.

Когато функция е да се използва веднага, цялата експресията извикване трябва да бъдат опаковани в parens така че да е ясно, че стойността се произвежда е резултат от функцията, а не самият функция.

var collection = (function () {
    var keys = [], values = [];

    return {
        get: function (key) {
            var at = keys.indexOf(key);
            if (at >= 0) {
                return values[at];
            }
        },
        set: function (key, value) {
            var at = keys.indexOf(key);
            if (at < 0) {
                at = keys.length;
            }
            keys[at] = key;
            values[at] = value;
        },
        remove: function (key) {
            var at = keys.indexOf(key);
            if (at >= 0) {
                keys.splice(at, 1);
                values.splice(at, 1);
            }
        }
    };
}());


Имена

Имената трябва да се формира от 26 главни и малки букви (A .. Z, а .. Z), 10-те цифри (0 .. 9), и _ (underbar). Избягвайте използването на международни символи, защото те не могат да четат добре или да се разбира навсякъде. Не използвайте $ (долар) или \ (наклонена черта) в имената.

Не използвайте _ (underbar) като първи или последен знак на името. Понякога тя е предназначена да покаже, неприкосновеността на личния живот, но тя всъщност не осигури неприкосновеността на личния живот. Ако неприкосновеността на личния живот е важно, използвайте формите, които предоставят частни членове. Избягвайте конвенции, които показват липса на компетентност.

Повечето променливи и функции трябва да започват с малка буква.

Функции на конструктора, че трябва да се използват с новия префикс трябва да започват с главна буква. JavaScript проблеми нито предупреждение по време на компилация, нито на хода на времето предупреждение, ако е необходимо ново е пропуснат. Лоши неща могат да се случат, ако новата не се използва, така че Конвенцията на капитализация е единствената защита, която имаме.

Глобалните променливи трябва да бъдат във всички капачки. (JavaScript не разполага с макроси или константи, така че няма голям смисъл да се използват всички капачки за да покаже характеристики, които не са с JavaScript.)

Изказвания

Прости отчети

Всеки ред трябва да съдържа най-много една декларация. Сложете; (точка и запетая) в края на всяка ясна декларация. Имайте предвид, че декларация за прехвърляне, което е възлагане функция буквален или обект буквално все още е оператора за присвояване и трябва да завършва с точка и запетая.

JavaScript позволява всеки израз, който се използва като изявление. Това може да маскира някои грешки, особено в присъствието на запетая вмъкване. Единствените изрази, които трябва да бъдат използвани като твърдения са задачи и заклинания.

Съставни изрази

Съставни изрази са изявления, които съдържат списъци на оператори затворени в {} (фигурни скоби).

  • Приложените отчети следва да бъдат разчленени още четири отделения.
  • {(лява фигурна скоба) трябва да бъде в края на линията, която започва отчета за съединение.
  • } (дясна фигурна скоба) трябва да започне с линия и се отмества да приведе в съответствие с началото на линията, съдържаща съвпадение {(лява фигурна скоба).
  • Скоби трябва да се използват около всички изявления, дори единични отчети, когато те са част от управляващата структура, като например, ако или за декларация. Това го прави по-лесно да добавите изявления без случайно въвеждане на бъгове.

Етикети

Отчет етикети не са задължителни. Само тези твърдения следва да бъдат етикетирани: а, направи, за, ключ.

Изявление възвръщаемост 

В изявление връщане на стойност не трябва да се използва () (в скоби) около стойността. Изразът за връщане стойност трябва да започне на същата линия като завръщане ключова дума, за да се избегне и запетая вмъкване.

Изявление

Ако класа на отчети трябва да има следния вид:

 if (condition) {
statements
}

if (condition) {
statements
} else {
statements
}

if (condition) {
statements
} else if (
condition) {
statements
} else {
statements
}

for резюме

А за клас отчети трябва да има следния вид:

 for (initialization; condition; update) {
statements
}

for (variable in object) {
if (
filter) {
statements
}
}

Първата форма трябва да се използва с решетки и с линии на предварително определен брой повторения.

Втората форма трябва да се използва с обекти. Имайте предвид, че членове, които се добавят към прототипа на обекта ще бъдат включени в изброяването. Това е мъдро да се програмира в защита, като се използва методът на hasOwnProperty да разграничи истинските членове на обекта:

   for (variable in object) {
if
(object.hasOwnProperty(variable)) {
statements
}
}

while изявление

while  изявление, докато трябва да има следния вид:

while (condition) {
statements
}

do изявление

do изявление задачи трябва да има следния вид:

do {
statements
} while (
condition);

За разлика от другите съставни изрази, отчета за винаги завършва с; (точка и запетая).

switch изявление

switch изявление ключ трябва да има следния вид:

  switch (expression) {
case
expression:
statements
default:
statements
}

Всеки случай е приведено в съответствие с ключа. Така се избягва прекомерната вдлъбнатина. Етикет A случай не е изявление, и не трябва да се отмества като такъв.

Всяка група от изявления (с изключение на по подразбиране) трябва да завършва с пробив, върнат, или хвърлят. Не попадайте сам.

try изявление

Класът на опит try  на отчети трябва да има следния вид:

try {
statements
} catch (variable) {
statements
}

try {
statements
} catch (variable) {
statements
 } finally {
statements
}

continue изявление

Да се избягва употребата на продължи отчета за. Тя има тенденция да се закриват контрол на потока на функцията.

with резюме

Не трябва да се използва с изявление.

Празното пространство

Празни редове подобри четливостта чрез прихващане на части от код, които са логически свързани.

Празните места трябва да се използват при следните обстоятелства:

Ключовата дума, последвано от ((лява скоба) трябва да бъдат отделени от интервал.
докато (вярно) {
Празното пространство не трябва да се използва между стойността за функция и нейното ((лява скоба). Това помага да се прави разлика между думи и функционални извиквания.
Всички двуместни изключение. (период) и ((лява скоба) и [(лява скоба) трябва да бъдат отделени от своите операнди от интервал.
Няма място трябва да се отдели унарен оператор и операнда с изключение, когато операторът е дума, като typeof.
Всяка; (точка и запетая) в контролната част на за становище следва да бъде последван с интервал.
Празното пространство трябва да следва всеки, (запетайка).
Бонус предложения

{} И []

Използвайте {} вместо нов обект (). Използвайте [] вместо нова Array ().

Използвайте масиви, когато имената на потребителя ще бъдат последователни числа. Използвайте предмети, когато имената членки са произволни низове или имена.

, (Запетая) Оператор

Избягвайте използването на оператора на запетая. (Това не се отнася за разделител, който се използва в обектно литерали, масив литерали, VAR отчети и списъци на параметрите.)

Обхват

В JavaScript блокове не разполагат с възможности. Само функции имат обхват. Не използвайте блокове освен при необходимост от изявленията на съединението.

Задание Expressions

Избягвайте да правите назначения в състояние част, ако и докато отчети.

Дали

ако (а = б) {
правилното твърдение? или беше

ако (а == б) {
предназначено? Избягвайте конструкции, които не могат лесно да бъдат определени, за да бъде вярна.

=== И! == Оператори.

Използвайте === и! == Оператори. The == и! = Оператори въвеждайте принуда и не трябва да се използват.

Объркващи плюсове и минуси

Бъдете внимателни, да не следват + с + или ++. Този модел може да е объркващо. Поставете parens между тях да се правят намерението си ясно.

Общият = Междинна сума + + myInput.value;
е по-добре написана като

Общият = Междинна сума + (+ myInput.value);
така, че + + не се бъркат, както ++.

Оценка е 

Функцията Оценка е най-неправилно черта на JavaScript. Избягвайте го.

Оценка има псевдоними. Не използвайте конструктора на функция. Не минава струни до setTimeout или setInterval.

 

admin

Leave a Reply

Your email address will not be published. Required fields are marked *