Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.08.2016, 13:55
Новичок на форуме
Отправить личное сообщение для atrac Посмотреть профиль Найти все сообщения от atrac
 
Регистрация: 27.11.2013
Сообщений: 4

Почему скрипт начинается с !
Вопрос почему некоторые скрипты начинаются с восклицательного знака?
Ну к примеру:
!function(a,b){"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.Freezer=b()}(this,fun ction(){var p=new Function("return this")(),k={extend:function(a,c){for(var f in c){a[f]=c[f]}return a},createNonEnumerable:function(a,f){var i={};for(var c in a){i[c]={value:a[c]}}return Object.create(f||{},i)},error:function(a){var c=new Error(a);if(console){return console.error(c)}throw c},each:function(c,o){var s,f,a;if(c&&c.constructor==Array){for(s=0,f=c.leng th;f>s;s++){o(c[s],s)}}else{for(a=Object.keys(c),s=0,f=a.length;f>s; s++){o(c[a[s]],a[s])}}},addNE:function(a,c){for(var f in c){Object.defineProperty(a,f,{enumerable:!1,config urable:!0,writable:!0,value:c[f]})}},createNE:function(a){var c={};
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2016, 14:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,080

atrac,
!function(a,b){}()

чтобы выполнить функцию, тоже самое что
(function(a,b){}())
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2016, 14:54
Новичок на форуме
Отправить личное сообщение для atrac Посмотреть профиль Найти все сообщения от atrac
 
Регистрация: 27.11.2013
Сообщений: 4

Понял! Спасибо.
А продолжение интересное тут Подскажите по ООП
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2016, 08:14
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

! перед функцией превращает декларацию в выражение, но не запускает функцию сам по себе, а запускает ее все равно () в конце, поскольку () имеет приоритет. Короче анальная технология, экономят на паре байтов там, где этих лишних байтов на мегабайты.
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2016, 08:19
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Сообщение от atrac
продолжение
Что интересного в том, что в жабе все переменные объявленные вне функций находятся в видимости любой функции? Собственно с этим глобальным скопом и борются всем скопом как в примере с самого начала. То есть та "функция" с ! нужна только для изоляции кучи хлама от протечек в предыдущий скоп.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает подключенный скрипт?? ivt22 Элементы интерфейса 1 04.01.2016 10:59
Почему не работает скрипт внутри контейнера table? follor Общие вопросы Javascript 0 29.10.2015 14:20
почему скрипт работает только в IE kletka Events/DOM/Window 4 20.01.2013 20:12
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
Почему скрипт отрабатывает в IE только при первом входе на сайт? tygeddar Элементы интерфейса 3 20.09.2012 01:37