Стандарти за кодиране на Javascript - WordPress Codex

Стандарти за кодиране на Javascript

  • WordPress използва единични кавички за низове.
  • Директивите за случая са с отстъп във вътрешността на блокове за превключване.
  • Тялото на функцията винаги е с отстъп.
  • Има някои разлики в използването на интервали за съответствие с PHP стандартите за кодиране.
  • Насърчава се ограничението от 100 знака на JQuery, но не се изисква стриктно.

Много от примерите по-долу са адаптирани директно от ръководството за стил на кодиране jQuery; горните разлики са интегрирани в примерите на тази страница. Стандартите и примерите по-долу трябва да се считат за най-добрите примери за кодове за WordPress, освен ако не е посочено изрично като пример.

Рефакторинг на вашия код

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

Използвайте широко интервали в кода си. „Когато се съмнявате, използвайте интервал.“

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

  • Отстъп с раздели.
  • Не използвайте интервали в края на редовете и на празни редове.
  • Редовете обикновено се изписват не по-дълги от 80 знака и определено не трябва да надвишават 100 (като броят на всеки раздел е 4 интервала). Това е свободно правило, но дългите редове обикновено показват нечетлив или лошо организиран код.
  • if/else/for/while/try блоковете винаги трябва да използват фигурни скоби и да обхващат няколко реда.
  • Унарните оператори (напр. ++, -) не трябва да имат интервали след операндите си.
  • Преди, и; не трябва да има интервали.
  • Всяка; като команден терминатор трябва да е в края на ред.
  • Преди: не трябва да има интервали след името на свойството в дефиницията на обекта.
  • Признаци? и: в тройния условен оператор трябва да има интервали от двете страни.
  • Празните конструкции (например <>, [], fn ()) не трябва да съдържат места за запълване.
  • В края на всеки файл трябва да има нов ред.
  • Зад знака на оператора за отрицание! трябва да има пространство.
  • Тялото на функцията е с отстъп в един раздел.
  • Интервалите могат да се използват за подравняване на код в документирани блокове или редове, но трябва да се използват само раздели за отстъпване на началото на ред.

Масиви и извиквания на функции

Винаги поставяйте допълнителни интервали около елементи и аргументи:

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

Точка и запетая

Използвай ги. Никога не разчитайте на автоматично вмъкване (ASI).

Вдлъбнатина и прекъсвания на редове

Вдлъбнатините и прекъсванията на линии добавят четливост за сложни конструкции.

Разделите трябва да се използват за отстъп. Дори ако целият файл се съдържа в една затворена структура (например във функция), съдържанието на функцията трябва да бъде отстъпено от един раздел:

Блокове и къдрави скоби

if, else, for, while, try - блоковете винаги трябва да използват фигурни скоби и винаги да са разположени на няколко реда. Отворената скоба трябва да е на същия ред като дефиниция на функция, условие или начало на цикъла. Затварящата скоба трябва да е на реда, непосредствено след последния оператор в блока.

Многоредови изречения

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

Редовете трябва да бъдат разделени на логически групи, ако това подобрява четливостта, например, по-добре е всеки тернарен израз на оператора да се постави на негова собствена линия, дори ако и двете се побират на един ред:

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

Верига на обажданията на метода

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

Задания и глобални променливи

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

Глобални променливи

true след passwordStrength означава, че тази глобална променлива е дефинирана в този файл. Ако се позовавате на глобална променлива, дефинирана другаде, пропуснете: true, за да укажете, че глобалната променлива е само за четене.