+function ($) { "use strict"; }(window.jQuery);

В bootstrap и в jquery плагинах встречается запись вида:

+function ($) { "use strict"; 

}(window.jQuery);

Проведём анализ этого выражения

Введение

Самое простое — "use strict"; включение «строгого режима». Подробнее на MDN и LearnJavascript

Способы объявления функций в JS:

  • Function Declaration – обычная функция, объявленная в основном потоке кода.
  • Function Expression – объявление функции в контексте какого-либо выражения, например присваивания.
// Function Declaration
function sum(a, b) {
  return a + b;
}
sum(2,3) // 5

// Function Expression
var sum = function(a, b) {
  return a + b;
}
sum(3,2) // 5

// далее будет использован вызов аналогичный
(sum)(7,9)

Подробнее про сравнение Function Expression и Function Declaration

Создание области видимости

IIFE - Immediately Invoked Function Expression - немедленно выполняемая функция-выражение. (Функция запускается сразу при объявлении). Позволяет избежать конфликта используемых переменных.

Синтаксис следующий:

(function() {
    ... код
})()

Внутри первых круглых скобок ни что иное как Function Expression. Можно передавать параметры:

(function(a,b) {
    ... код
    console.log(b,a); // 9,7
})(7,9)

Объявить IIFE выражение возможно другими способамм, допустим поставив перед функцией какой-либо оператор, например + или !:

+function(a,b) {
  console.log('Вызов с помощью +');
}();

!function(a,b) {
  console.log('Вызов с помощью !');
}();

Подробнее про скобки вокруг функции

Непосредственно разбор выражения

  1. объявляется IIFE (немедленно выполняемая функция-выражение)

    +function () { 
    
    }();
  2. в функцию явно передаётся объект библиотеки jQuery с помощью window.jQuery, которая внутри будет доступна через переменную с именем $.
    +function ($) { 
        // $ - просто имя параметра
    }(window.jQuery);
  3. включается «строгий режим»
    +function ($) { 
        "use strict"; 
        ...
    }(window.jQuery);

Такой приём проектирования называется «Модуль»

При написании кода с использованием библиотеки jQuery используется знак доллара. Чтобы избежать конфликтов с другими библиотеками, которые могут использовать символ доллара, рекомендуется «оборачивать» объект jQuery в IIFE, которое связывает объект jQuery с символом "$», чтобы он не переопределялся другой библиотекой во время выполнения.


Почитать:

Похожие записи

О шрифтах

Ссылки на 2 хорошо структурированных материала про шрифты.

  • Статья для тех, кто ничего не понимает в шрифтах.
  • Видео для тех, кто хочет заразиться страстью к шрифтам и типографике

Добавить css link и js script динамически

const link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css';
link.integrity = 'sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO'; // необязательно
link.crossOrigin = 'anonymous'; // необязательно
document.head.appendChild(link);

const script = document.createElement('script');
script.src = 'https://code.jquery.com/jquery-3.3.1.slim.min.js';
script.integrity = 'sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo'; // необязательно
s...