Последние учебники веб-разработки
×

JS Руководство

JS ГЛАВНАЯ JS Введение JS Куда JS Вывод JS Синтаксис JS Заявления JS Комментарии JS переменные JS операторы JS арифметика JS присваивание JS Типы данных JS функции JS Объекты JS Объем JS Мероприятия JS Строки JS Методы струнных JS чисел JS Методы Number JS математический JS Даты JS Форматы даты JS Методы Дата JS Массивы JS Методы массивов JS Booleans JS Сравнения JS условия JS переключатель JS петля For JS В то время как Loop JS Ломать JS Тип преобразования JS RegExp JS ошибки JS отладка JS Подъемно JS Строгий режим JS Гид по стилю JS Лучшие практики JS Ошибки JS Представление JS Зарезервированные слова JS JSON

JS формы

Формы проверки Формы API

JS объект

Определения объектов Свойства объекта Методы объекта Прототипы объектов

JS функции

Определения функций Функциональные параметры Функция Призвание Функция Затворы

JS HTML DOM

DOM вступление DOM методы DOM Документ DOM элементы DOM HTML DOM CSS DOM Анимации DOM Мероприятия DOM EventListener DOM навигация DOM Вершины DOM Nodelist

JS браузер BOM

JS Window JS Screen JS Location JS History JS Navigator JS Popup Alert JS Timing JS Cookies

JS Примеры

JS Примеры JS HTML DOM JS HTML вход JS HTML Объекты JS HTML Мероприятия JS браузер JS викторина JS Резюме

JS Рекомендации

JavaScript Объекты HTML DOM Объекты


 

JavaScript Лучшие практики


Избегайте глобальных переменных, во избежание new , избегать == , во избежание eval()


Избегайте глобальных переменных

Сведите к минимуму использование глобальных переменных.

Это включает в себя все типы данных, объекты и функции.

Глобальные переменные и функции могут быть перезаписаны другими сценариями.

Используйте локальные переменные вместо этого, и узнать , как использовать замыкания .


Всегда объявлять локальные переменные

Все переменные , используемые в функции должны быть объявлены как локальные переменные.

Локальные переменные должны быть объявлены с var ключевого слова, иначе они станут глобальными переменными.

Строгий режим не позволяет необъявленных переменных.


Объявления по началу

Это хорошая практика кодирования, чтобы поместить все объявления в верхней части каждого скрипта или функции.

Это будет:

  • Дайте чистый код
  • Обеспечить единое место для поиска локальных переменных
  • Сделать это проще, чтобы избежать нежелательных (подразумеваемые) глобальные переменные
  • Уменьшить вероятность нежелательных повторных заявлений
// Declare at the beginning
var firstName, lastName, price, discount, fullPrice;

// Use later
firstName = "John";
lastName = "Doe";

price = 19.90;
discount = 0.10;

fullPrice = price * 100 / discount;

Это касается также переменных цикла:

// Declare at the beginning
var i;

// Use later
for (i = 0; i < 5; i++) {

По умолчанию, JavaScript перемещает все объявления к началу страницы (JavaScript грузоподъемных).


инициализировать переменные

Это хорошая практика кодирования для инициализации переменных при объявлении их.

Это будет:

  • Дайте чистый код
  • Обеспечить единое место для инициализации переменных
  • Избегайте неопределенные значения
// Declare and initiate at the beginning
var firstName = "",
    lastName = "",
    price = 0,
    discount = 0,
    fullPrice = 0,
    myArray = [],
    myObject = {};

Инициализация переменных дает представление предполагаемого использования (и предназначенный тип данных).


Никогда не Объявите число, строка или логические объекты

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

Объявив эти типы в качестве объектов, замедляет скорость выполнения, и производит неприятные побочные эффекты:

пример

var x = "John";             
var y = new String("John");
(x === y) // is false because x is a string and y is an object.
Попробуй сам "

Или еще хуже:

пример

var x = new String("John");             
var y = new String("John");
(x == y) // is false because you cannot compare objects.
Попробуй сам "

Не используйте new Object()

  • Используйте {} вместо new Object()
  • Используйте "" вместо new String()
  • Используйте 0 вместо new Number()
  • Используйте false вместо new Boolean()
  • Используйте [] вместо new Array()
  • Используйте /()/ вместо new RegExp()
  • Используйте function (){} вместо new Function()

пример

var x1 = {};           // new object
var x2 = "";           // new primitive string
var x3 = 0;            // new primitive number
var x4 = false;        // new primitive boolean
var x5 = [];           // new array object
var x6 = /()/;         // new regexp object
var x7 = function(){}; // new function object
Попробуй сам "

Остерегайтесь автоматического преобразования типов

Имейте ввиду , что цифры случайно могут быть преобразованы в строки или NaN (не число).

JavaScript является слабо типизированным. Переменная может содержать различные типы данных, а переменная может изменить его тип данных:

пример

var x = "Hello";     // typeof x is a string
x = 5;               // changes typeof x to a number
Попробуй сам "

При выполнении математических операций, JavaScript может преобразовывать числа в строки:

пример

var x = 5 + 7;       // x.valueOf() is 12,  typeof x is a number
var x = 5 + "7";     // x.valueOf() is 57,  typeof x is a string
var x = "5" + 7;     // x.valueOf() is 57,  typeof x is a string
var x = 5 - 7;       // x.valueOf() is -2,  typeof x is a number
var x = 5 - "7";     // x.valueOf() is -2,  typeof x is a number
var x = "5" - 7;     // x.valueOf() is -2,  typeof x is a number
var x = 5 - "x";     // x.valueOf() is NaN, typeof x is a number
Попробуй сам "

Вычитая строку из строки, не генерирует сообщение об ошибке , но возвращает NaN (не число):

пример

"Hello" - "Dolly"    // returns NaN
Попробуй сам "

Использование === Сравнение

== Оператор сравнения всегда преобразует (к соответствию типов) перед сравнением.

=== Оператор силы Сравнение значений и типа:

пример

0 == "";        // true
1 == "1";       // true
1 == true;      // true

0 === "";       // false
1 === "1";      // false
1 === true;     // false
Попробуй сам "

Использование параметров настройки по умолчанию

Если функция вызывается с недостающим аргументом, значение недостающего аргумента установлено значение undefined .

Неопределенные значения может привести к поломке вашего кода. Это хорошая привычка присваивать значения по умолчанию для аргументов.

пример

function myFunction(x, y) {
    if (y === undefined) {
        y = 0;
    }
}
Попробуй сам "

Подробнее о параметрах функции и аргументы в функциональных параметрах


End коммутаторах со значениями по умолчанию

Всегда заканчивайте ваши заявления переключатель с по умолчанию. Даже если вы думаете, что нет необходимости в этом.

пример

switch (new Date().getDay()) {
    case 0:
        day = "Sunday";
        break;
    case 1:
        day = "Monday";
        break;
    case 2:
        day = "Tuesday";
        break;
    case 3:
        day = "Wednesday";
        break;
    case 4:
        day = "Thursday";
        break;
    case 5:
        day = "Friday";
        break;
    case 6:
        day = "Saturday";
        break;
    default:
        day = "Unknown";
}
Попробуй сам "

Избегайте использования eval()

eval() функция используется для запуска текст в качестве кода. Почти во всех случаях, это не должно быть необходимо использовать его.

Потому что это позволяет произвольный код запуска, он также представляет собой проблему безопасности.