Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Почему скрипт начинается с ! (https://javascript.ru/forum/misc/64407-pochemu-skript-nachinaetsya-s.html)

atrac 09.08.2016 13:55

Почему скрипт начинается с !
 
Вопрос почему некоторые скрипты начинаются с восклицательного знака?
Ну к примеру:
!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={};

рони 09.08.2016 14:25

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

чтобы выполнить функцию, тоже самое что
(function(a,b){}())

atrac 09.08.2016 14:54

Понял! Спасибо.
А продолжение интересное тут http://javascript.ru/forum/misc/3808...te-po-oop.html

warren buffet 10.08.2016 08:14

! перед функцией превращает декларацию в выражение, но не запускает функцию сам по себе, а запускает ее все равно () в конце, поскольку () имеет приоритет. Короче анальная технология, экономят на паре байтов там, где этих лишних байтов на мегабайты.

warren buffet 10.08.2016 08:19

Цитата:

Сообщение от atrac
продолжение

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


Часовой пояс GMT +3, время: 05:06.