Эта глава не объясняет некоторые основные принципы JS в глубине, такие как этот указатель, сфера действия и прототип. В нем участвуют некоторые из них, которые способствуют упрощению кода и повышению эффективности выполнения во время разработки, или они могут использоваться в качестве эмпирического метода. Длина не длинная, и небольшие шаги позволяют прочитать всю статью и испытать радость программирования.
Получите случайные числа в двух интервалах
Кода -копия выглядит следующим образом:
Функция getRandomnum (min, max) {// Получить случайные числа в двух интервалах
// @南南南南南南 предполагает, что первый параметр больше, чем второй параметр, поэтому добавление суждения является более надежным
if (min> max)
Max = [min, min = max] [0]; // быстро обмениваться двумя значениями переменной
var range = max - min + 1;
var rand = math.random ();
вернуть min + math.floor (rand * range);
};
Вернуть положительный/отрицательный параметр случайным образом
Кода -копия выглядит следующим образом:
Функция getRandomxy (num) {// возвращать случайный положительный/отрицательный параметр
num = новое число (num);
if (math.random () <= 0,5)
num = -num;
вернуть num;
}
SetInterval () или setTimeout () Функция Timer PAMARET PAMATER
Кода -копия выглядит следующим образом:
var s = 'я параметр';
Функция fn (args) {
console.log (args);
}
var a = setInterval (fn (s), 100); // xxxxx ошибка xxxxxx
var b = setInterval (function () {// правильно, вызовите временную функцию с помощью анонимной функции
fn (s);
}, 100);
setInterval () или setTimeout () таймер рекурсивно вызван
Кода -копия выглядит следующим образом:
var s = true;
Функция fn2 (a, b) {// step 3
if (s) {
ClearInterval (A);
clearInterval (b);
}
};
Функция fn (a) {// Шаг 2
var b = setInterval (function () {
Fn2 (a, b) // пройти в двух таймере
}, 200)
};
var a = setInterval (function () {// step 1
fn (a); // b представляет сам таймер, который можно передавать по параметрам места
}, 100);
Преобразовать строку в номер
Кода -копия выглядит следующим образом:
// Нет необходимости в новом номере (строку) и номере (строка). Просто вычитайте нули из строки
var str = '100'; // str: строка
var num = str - 0; // num: число
Null Value Sudge
Кода -копия выглядит следующим образом:
var s = ''; // пустая строка
If (! S) // Пустая строка преобразуется в ложно -по умолчанию в ложном ложном
if (s! = null) // но пустая строка! = null
if (s! = неопределенная) // пустая строка тоже! = Неопределенная
Т.е. метод браузера Parseint ()
Кода -копия выглядит следующим образом:
// Следующее преобразование составляет 0 в IE, а другие браузеры - 1. Это связано с объяснением цифр браузера IE.
var inum = parseint (01);
// Итак, совместимое письмо
var num = parseint (новый номер (01));
Firebug удобно отлаживает код JS
Кода -копия выглядит следующим образом:
// Firebug имеет встроенный объект консоли, предоставляя встроенные методы для отображения информации
/**
* 1: console.log (), который можно использовать вместо alert () или document.write (), поддерживает выход заполнителей, символы (%s), целые числа (%d или%i), номера с плавающими точками (%f) и объекты (%o). Например: Console.Log (« %D Год D %D %D Day», 2011, 3, 26)
* 2: Если слишком много информации, вы можете отобразить ее в группах. Используемые методы являются console.group () и console.groupend ()
* 3: console.dir () может отображать все свойства и методы объекта
* 4: console.dirxml () используется для отображения кода HTML/XML, содержащегося в узле веб -страницы
* 5: console.assert () утверждает, используется для определения того, является ли выражение или переменная истинностью
* 6: console.trace () используется для отслеживания трека вызова функции
* 7: console.time () и console.timeend () используются для отображения времени выполнения кода
* 8: Анализ производительности (Profiler) предназначен для анализа времени выполнения каждой части программы, чтобы узнать узкое место. Используемый метод - console.profile () .... fn .... console.profileend ()
*/
Быстро возьмите текущие миллисекунды
Кода -копия выглядит следующим образом:
// t == Современное значение Millisecond, причина: будет вызван оператор знака +, и будет вызван метод даты значения ().
var t = +new Date ();
Быстро возьмите десятичные целочисленные биты
Кода -копия выглядит следующим образом:
// x == 2, следующие значения x составляют 2, а отрицательные числа также могут быть преобразованы
var x = 2.00023 | 0;
// x = '2.00023' | 0;
Два значения переменных обмен (без промежуточной суммы )
Кода -копия выглядит следующим образом:
var a = 1;
var b = 2;
a = [b, b = a] [0]
оповещение (a+'_'+b) // значения результата 2_1, A и B были заменены.
Логично или '||' оператор
Кода -копия выглядит следующим образом:
// b не нулевой: a = b, b is null: a = 1.
var a = b || 1;
// Наиболее распространенное использование-передавать параметры для метода плагина и получить целевые элементы события: Event = Event || Window.event
// IE имеет объект Window.Event, но FF нет.
Только объект метода обладает свойствами прототипа
Кода -копия выглядит следующим образом:
// Метод имеет свойство прототипа объекта, в то время как исходные данные не имеют этого свойства, например, var a = 1, A не имеет свойства прототипа
function person () {} // человеческий конструктор
Person.prototype.run = function () {alert ('run ...'); } // метод прототипа запуска
Person.run (); // ошибка
var p1 = новый человек (); // Метод прототипа запуска будет назначен на P1 только при использовании нового оператора.
p1.run (); // бегать...
Быстро получите день недели
Кода -копия выглядит следующим образом:
// Текущее время системы расчета - неделя
var week = "Сегодня: неделя" + "день, два, три, четыре, пять, шесть" .Charat (new Date (). getDay ());
Закрытие предвзятости
Кода -копия выглядит следующим образом:
/**
* Закрытие: любое тело метода JS можно назвать закрытием, не только это происходит, если встроенная функция относится к определенному параметру или свойству внешней функции.
* Он имеет независимую область, в которой могут существовать несколько подсказок (то есть методы вложенных методов), и, наконец, область закрытия является областью прицела самого внешнего метода.
* Он содержит параметры метода самого себя и параметры метода всех встроенных функций. Следовательно, когда встроенная функция имеет эталон снаружи, объем ссылки является (верхним) методом, где находится эталонная функция.
*/
функция a (x) {
функция b () {
предупреждение (x); // Ссылка на параметры внешней функции
}
возврат B;
}
var run = a ('run ...');
// Из -за расширения объема, переменные внешней функции A можно ссылаться и отображаться
бегать(); // alert (): запустить ..
Получить строку параметра адреса и обновление времени
Кода -копия выглядит следующим образом:
// Получить знак вопроса? Следующий контент включает в себя знак вопроса
var x = window.location.search
// Получить контент за номером тревоги #, включая номер #
var y = window.location.hash
// Автоматическое обновление веб -страницы может быть достигнуто с помощью таймера
window.location.reload ();
Нулевой и неопределенный
Кода -копия выглядит следующим образом:
/**
* Неопределенный тип имеет только одно значение, то есть не определен. Когда объявленная переменная не была инициализирована, значение по умолчанию переменной не определен.
* NULL тип также имеет только одно значение, то есть NULL. NULL используется для представления объекта, который еще не существовал, и часто используется для представления функции, которая пытается вернуть объект, которого не существует.
* Ecmascript считает, что неопределенные получены из нулевого, поэтому они определены как равные.
* Но, если в некоторых случаях мы должны различать эти два значения, что мы должны делать? Можно использовать следующие два метода
* При вынесении суждений лучше всего использовать '===' Сильный тип суждения при оценке того, имеет ли объект ценность в соответствии с потребностями.
*/
var a;
предупреждение (a === null); // ложь, потому что А не пустой объект
предупреждение (a === не определен); // true, поскольку A не инициализируется, значение не определена
// Представлять
предупреждение (null == не определен); // true, потому что оператор '==' будет выполнять преобразование типа,
// Сходным образом
предупреждение (1 == '1'); // истинный
предупреждение (0 == false); // true, false преобразуется в тип номера 0
Динамически добавить параметры в метод
Кода -копия выглядит следующим образом:
// Метод A имеет еще один параметр 2
функция a (x) {
var arg = array.prototype.push.call (аргументы, 2);
оповещение (аргументы [0]+'__'+аргументы [1]);
}
Настроить стиль выбора границы
Кода -копия выглядит следующим образом:
<!-Скопируйте на страницу, чтобы попробовать эффект, вы можете настроить стиль по желанию->
<span style = "border: 1px твердый красный; позиция: абсолют; переполнен: скрыт;" >
<select style = "margin: -2px;">
<опция> пользовательский стиль выбора границы </option>
<опция> 222 </option>
<опция> 333 </option>
</select>
</span>
Самая простая цветовая палитра
Кода -копия выглядит следующим образом:
<!-JS, чтобы извлечь его значение и установить любой цвет любому объекту->
<input type = color />
Функции, объекты массивы?
Кода -копия выглядит следующим образом:
var anobject = {}; // объект
anobject.aproperty = "свойство объекта"; // свойство объекта
anobject.amethod = function () {alert ("метод объекта")}; // метод объекта
// сосредоточиться на следующем:
предупреждение (anobject ["Aproperty"]); // Вы можете получить доступ к атрибуту в качестве массива с именем атрибута в качестве индекса
anobject ["amethod"] (); // Вы можете вызвать метод в качестве массива с именем метода в качестве индекса
для (var s в anobject) // Передача всех свойств и методов объекта для итеративной обработки
Alert (s + ” - это” + typeof (anobject [s]));
// это то же самое для объекта типа функции:
var function = function () {}; // функция
function.aproperty = "свойство функции"; // свойство функции
function.amethod = function () {alert ("Метод функции")}; // метод функции
// сосредоточиться на следующем:
предупреждение (выкоркать ["Aproperty"]); // Вы можете получить доступ к свойствам в качестве массива с именем атрибута в качестве индекса
Выкормите ["аметод"] (); // Вы можете вызвать метод, используя имя метода в качестве индекса, когда функция используется в качестве индекса для массива
Для (var s в афункции) // Итерация всех свойств и методов функции обхода для итеративной обработки
Alert (s + ” - это” + typeof (defunction [s]));
Кода -копия выглядит следующим образом:
/**
* Да, объекты и функции могут быть доступны и обработаны как массивы, используя имена атрибутов или имена методов в качестве подписок.
* Так следует ли считаться массивом или объектом? Мы знаем, что массивы следует считать линейными структурами данных. Структуры линейных данных обычно имеют определенные правила, которые подходят для единичных операций итерационной итерации и т. Д., Которые немного похожи на волны.
* Объекты - это дискретные структуры данных, которые подходят для описания разбросанных и персонализированных вещей, немного похожих на частицы.
* Поэтому мы также можем спросить: объекты в javaScript волнах или частицах? Если есть квантовая теория объекта, то ответ должен быть: двойственность волновой частицы!
* Следовательно, функции и объекты в JavaScript имеют как характеристики объектов, так и массивов. Массив здесь называется «Словарь», коллекцию пар именных значений, которые могут быть произвольно растянуты и сжаты. Фактически, внутренняя реализация объекта и функции является словарной структурой, но эта словарная структура демонстрирует богатый вид через строгую и изысканную грамматику. Точно так же, как квантовая механика использует частицы для объяснения и решения проблем в некоторых местах, в то время как волны, чтобы объяснить и решать проблемы в других. Вы также можете свободно выбрать использовать объекты или массивы для объяснения и решения проблем при необходимости. Пока вы хорошо разбираетесь в этих замечательных функциях JavaScript, вы можете написать много краткого и мощного кода.
*/
Нажатие на пустую область может запустить определенный элемент, чтобы закрыть/скрыть
Кода -копия выглядит следующим образом:
/**
* Иногда на странице есть раскрывающееся меню или что-то в этом роде, которое требует, чтобы пользователь скрывал его, когда нажимает на пробел или нажимая на другие элементы.
* Можно запустить событие Global Document Click
* @param {object} "Целевой объект"
*/
$ (документ) .click (function (e) {
$ ("целевой объект"). Hide ();
});
/**
* Но один недостаток заключается в том, что когда вы нажимаете на элемент и хотите, чтобы он отобразил его
* Если вы не помешаете событию пузыриться до глобального объекта документа, щелкнув во времени, будет выполнено приведенный выше метод
*/
$ ("Target Object"). Нажмите (function (event) {
Event = Event || window.event;
event.stoppropagation (); // При нажатии на целевой объект предотвращайте событие во времени
$ («Целевой объект»). Toggle ();
});
Выше приведены некоторые часто используемые методы JavaScript, составленные мной. Они могут быть записаны и использованы непосредственно во время разработки. Это также рекомендуется для нуждающихся друзей.