Сегодня я нашел вопрос на GitHub о том, как правильно использовать JavaScript для разработки нашей программы. Я бесстыдно придумал оригинал ... это афера. Давайте поделимся этим с вами.
В основном разумный подход к JavaScript.
Типы // Тип
Объекты // объекты
Массивы // массивы
Строки // Строки
Функции // функции
Свойства // свойства
Переменные // переменные
Подъем // улучшение переменной
Условные выражения и равенство // условные выражения и равенства.
Блоки // код блока
Комментарии // Комментарии
Пробел // пространство
Запятые // запяты
Полуколоны // полуколоны
Тип кастинг и принуждение // преобразование типа
Услуги именования // правила именования правил
Документ // Доступ
Конструкторы // Конструкторы
События // время
Модули // модели
jQuery //
Ecmascript 5 Совместимость // ECMA 5 Совместимость
Тестирование // тестирование
Производительность // производительность
Ресурсы // Ресурсы
В дикой природе
Перевод
Руководство по стилю JavaScript
Участники
Лицензия
Типы (тип)
Примитивный тип: При доступе к примитивному типу он фактически напрямую доступ к содержимому примитивного типа.
нить
число
логический
нулевой
неопределенный
var foo = 1,
bar = foo;
бар = 9;
console.log (foo, bar); // => 1,9
Комплексный тип: Когда вы получаете доступ к комплексному типу данных, вы фактически получаете доступ к значению переменной через ссылку.
объект
множество
функция
var foo = [1,2]; bar = foo; bar [0] = 9; console.log (foo [0], bar [0]); // => 9,9
объект (объект)
Используйте объектные литералы для создания объектов (буквально)
// badvar item = new object (); // goodvar item = {};Не используйте зарезервированные ключевые слова в качестве имени свойства объекта. Это не будет работать в IE8.
// badvar superman = {default: {clark: 'kent'}, private: true}; // goodvar superman = {defaults: {clark: 'kent'}, hidden: true};массив (массив)
Также используйте буквальный метод для создания массива
// badvar items = new Array (); // goodvar items = [];
Если вы не знаете длину массива, то используйте встроенный метод массива для работы вставки
var somestack = []; // badsomestack [someStack.length] = 'ven'; // Goodsomestack.push ('VEVE');Когда вы хотите скопировать массив, используйте Array.Slice
var len = items.length, // относится к вышеуказанному контенту ... itemcopy = [], i; // badfor (i = 0; i <len; ++ i) {itemcopy [i] = items [i];} // gooditemcopy = items.slice (); // мне нужно обратить внимание здесь. Я действительно этого не знаю ...Струны строки
Используйте отдельные цитаты, чтобы приложить струны ... // Я не нашел подходящего объяснения для производительности здесь, мне лично мне нравится использовать его так (лучше носить меньше, чем ношение ... вы знаете ...)
// badvar name = "bob parr"; // goodvar name = 'bob parr'; // badvar fullname = "bob" + this.lastname; // goodvar fullname = 'bob' + this.lastname;
Когда строки длиннее 80 символов, вам нужно использовать конкатенацию строки для написания нескольких строк. Обратите внимание, что в случае чрезмерного использования, объединение строк повлияет на производительность.
// badvar errormessage = 'Это супер длинная ошибка, которая была брошена из -за Бэтмена. Когда вы перестаете думать о том, как Бэтмен имел какое -либо отношение к этому, вы бы никуда не попали. Когда вы перестанете думать о том, как Бэтмену было что -то сделать /с этим, вы не получите никуда /affect.';// Goodvar errormessage = 'Это супер длинная ошибка, которая была брошена, потому что « +» Бэтмена. Когда вы перестанете думать о том, как Бэтмену было что -то делать « +» с этим, вы не получите никуда быстро »;
Если вы создаете массив запланированным образом, например, следующее. Использование Array.join будет работать лучше ..
элементы VAR, сообщения, длина, i; сообщения = [{stat: «успех», сообщение: «Это работало»}, {stat: «Успех», сообщение: «Это работало»}, {stat: «Успех», сообщение: «Это работало»}]; длину = сообщения. + Сообщения [i] .message + '</li>';} возвращают элементы + '</ul>';} // Goodfunction inbox (сообщения) {items = []; for (i = 0; i <length; i ++) {items [i] = сообщения [i]. '</li> </ul>';}Функции
// Anonymous Function Expression..var anonymous = function () {return true;}; // имен Функция.Никогда не определяйте функции в коде нефункционального блока (если, пока). Соответственно, функция присваивается имени внешней переменной в середине блока кода.
// badif (currentUser) {function test () {console.log ('nope.');}} // test goodvar; if (currentUser) {test = function () {console.log ('yup'); }; // Будьте осторожны с полуколоном.}Свойства (свойства)
Используйте Dot Syntax для доступа к свойствам.
var luke = {jedi: true, возраст: 28}; // badvar isjedi = luke ['jedi']; // goodvar isjedi = lucky.jedi;При доступе к свойствам объектов с помощью переменных используйте [] квадратные кронштейны для доступа
var luke = {jedi: true, возраст: 28}; function getProp (prop) {return luke [prop];} var isjedi = getProp ('jedi');