JavaScript - это язык сценариев, принадлежащий сети!
JavaScript используется миллионами веб -страниц для улучшения дизайна, проверки форм, обнаружения браузеров, создания файлов cookie и многого другого.
JavaScript - самый популярный язык сценариев в Интернете.
JavaScript прост в использовании! Вам это понравится!
JavaScript - это интерпретированный язык сценариев с гибким синтаксисом, позволяющий разным людям писать разные функции разными способами. Как организовать код JavaScript, чтобы другие могли видеть, что вы не прост? Вы с нетерпением ждете, что кто -то еще вздохнет после прочтения вашего кода: «Оказывается, что вы можете написать таким образом»?
N Способности написать анонимные функции
Анонимная функция JS-это функция самообслуживания с неверным именем функции, и формат выглядит следующим образом:
(function () {}) ();На самом деле, мы часто ставим «»; »; перед проектом:
; function () {} ();Потому что синтаксис JS может опустить полуколоны, но этот механизм также может привести к неожиданным ошибкам. Чтобы избежать синтаксических ошибок, вызванных слиянием и сжатием кода в файл после его запуска, добавив «»; »;»; »; может избежать неизвестных ошибок.
Но иногда мы видим, что библиотеки или плагины других людей пишут анонимные функции, подобные этим:
+function () {} ();«+» - это оператор, и оператор имеет чрезвычайно высокий приоритет, поэтому часть объявления функции справа со скобками (на самом деле способ записи функции) выполняется непосредственно. На самом деле, это может быть не только знак «+» впереди, но и такие операторы, как «-», «!», «~» И «++» могут быть использованы. Здесь мы просто введение в расширение. Какой конкретный метод написания используется, зависит от единых стандартов команды.
Abandon Math.ceil () и Math.Floor Rounding
Может быть, я видел эти два символа ~~ и | 0 в других кодах и напрямую посмотрите на результаты работы:
>> var a1 = 1.23 >> ~~ a11 >> var a2 = 2,345 >> a2 | 02 >> var a3 = -3,45 >> ~~ a3-3 >> var a4 = -4,5 >> a4 | 0-4
Обратите внимание, что этот метод написания не является оригинальным, но просто цитируется для анализа и объяснения этого альтернативного метода написания. Простое объяснение состоит в том, что ~ - это кусочек обратного оператора, который может преобразовать номера с плавающими темпами в целые числа, отбрасывая все биты после десятичной точки. Положительные целые числа могут быть преобразованы в беспигнированные шестнадцатеричные значения. Затем снова обратный (~~) отрицательный и отрицательный, чтобы стать положительным, и получить исходное целое число. Просто он такой преднамеренный и безудержный. Как вы думаете, это оптимизация?
ПРИМЕЧАНИЕ. Если вам нужно выполнять строгие операции за округление, вы должны использовать этот метод с осторожностью, то вам все равно придется использовать математическую функцию.
Если и не единственные
Использование условий if-else очень четкая логика, он не выглядит очень кратко, когда обработка данных не является большой:
if (a === 1) {// настоятельно рекомендуется использовать строго равный символ "===" Здесь, и преобразование типа не будет выполнено a = 2} else if (a === 3) {a = 4} else {a = 5}Взгляните на следующее, чтобы использовать || и &&, чтобы сделать код похудеть:
((a === 1) && (true, a = 2)) || ((a === 3) && (true, a = 4)) || (a = 5)
Это будет сделано в одной линии, и вы успешно похудеете. || и &&, простой принцип не упоминать. Нелегко понять при использовании оператора запятой. Вы можете продолжать менять его на тройной оператор:
(a === 1)? a = 2 :( (a === 3)? (a = 4): (a = 5))
Этот способ написания кажется достаточно упрощенным, но другим будет немного сложно увидеть ваш код.
Заменить раздражающую строчку строчки структуры DOM на ToString
Если мы хотим динамически генерировать структуру DOM, мы обычно реализуем ее так:
var template = "<div>"+ "<h2> {title} </h2>"+ "<div class = 'content' yattr = ''> {content} </div>"+ "</div>"Если добавлены различные атрибуты и параметры, легко сообщать об ошибках, когда смущены большие и маленькие кавычки. Тем не менее, ES6 предоставляет строку шаблона, чтобы помочь нам решить эту проблему, вы можете написать ее так:
var template = <div> <h2> {title} </h2> <div class = 'content' yattr = ''> {content} </div> </div>Но проблема в том, что ES6 официально еще не прибыл ... не бойтесь, функционируйте. ТОСстроение решит смущение, когда мы не подключены:
var rcomment = /////**([/s/s]*?)/*///; // Умножение строковой функции ms (fn) {return fn.toString (). Match (rcomment) [1]}; ms (function () {/ * <div> <h2> {title} </h2> <div class = 'content' yattr = ''> {content} </div> </div> */})Вывод здесь такой же, как и предыдущий вывод строки. Фронтовые программисты должны только обращать внимание на свою собственную структуру DOM.
Добавить поддержку модуля AMD, приглашение кода B
Объявите спецификацию модуля AMD (определение асинхронного модуля) в написанном вами коде, чтобы другие могли загружать ваш модуль непосредственно через спецификацию AMD. Если другие не загружают ваш модуль с помощью спецификации, вы также можете элегантно вернуть обычный глобальный объект. Давайте посмотрим на метод написания jQueryui:
(function (factory) {if (typeof define === "function" && define.amd) {// amd mode. и полагаться на плагин "jquery" define (["jquery"], factory);} else {// Brower Global Mode Factory (jQuery);}} ($) { / / поставить код module wte wte wte $.Измените его на структуру модуля AMD, чтобы сделать ваш код более подходящим для зависимости загрузки сценариев на стороне браузера. Напишите код в этом формате, чтобы другие знали, что вы профессиональный разработчик, как только вы посмотрите на код.
Лучший метод наследования
JavaScript имеет более десяти методов наследования, как большие, так и маленькие. Преимущества и недостатки каждого метода написания различны, и каждый метод не указан один за другим. Возьмите общий метод наследования в качестве примера, прототип наследование:
function parent () {} function child () {} child.prototype = parent.prototyphild.prototype.constructor = child;Этот метод фактически указывает на указатель, сохраненный в Child.Protototype и Parent.Prototype на одном и том же объекте, поэтому, если некоторые свойства расширены в прототипе объекта дочерних объектов, так что прототип родительского объекта будет продолжать наследовать позже, прототип родительского объекта также будет переписан. Итак, чтобы решить эту проблему, попробуйте одолжить метод временного написания конструктора:
function empty () {} empty.prototype = parent.prototype; child.prototype = new empty (); child.prototype.constructor = child;Таким образом, собственные свойства родительского объекта и методы прототипа защищены. «Оптимальный» немного преувеличен, но в сравнении. Я считаю, что у каждого есть свой собственный стиль письма, и есть также преимущества и недостатки заимствования и применить для реализации наследования атрибутов. Длина ограничена, и я не буду вводить их один за другим.
Суммировать
Все альтернативные методы написания JavaScript, упомянутые выше, представляют собой синтаксический сахар для простой для понимания или повышения эффективности. Такие методы предпочтительнее, например, практика пропуска If-Else, как упомянуто выше. Некоторые предназначены для улучшения совместимости и производительности нашего кода, таких как методы AMD и наследования. ... Я новичок, и в приведенном выше контенте, безусловно, есть какое -то неполное и необъяснимое содержимое.
Приведенный выше контент - это связанное с этим введение в альтернативные методы написания JavaScript, я надеюсь, что это будет полезно для всех!