Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. // урок13
  2.  
  3. /*
  4. функции - это действия
  5.  
  6. существует два синтакиса создания функций
  7. */
  8.  
  9. // Function Declaration
  10.  
  11. function show(){
  12. alert(1);
  13. }
  14.  
  15. show();
  16.  
  17. // Function Expression
  18.  
  19. let showNew = function(){
  20. alert(2);
  21. }
  22.  
  23. showNew();
  24.  
  25. /*
  26. Функцию можно скопировать в переменную
  27.  
  28. */
  29.  
  30. function showHi(){
  31. alert('Hi!');
  32. }
  33.  
  34. let showHiNew = showHi; // переменной функция присваевается без круглых скобок
  35.  
  36. showHiNew();
  37.  
  38. showHi(); // функция может быть вызвана обеими способами
  39.  
  40. // присвоение при Function Expression
  41.  
  42. let name = function(){
  43. alert('Привет')
  44. };
  45.  
  46. let func = name;
  47.  
  48. func();
  49.  
  50. // при синтаксисе Function Expression после выражения ставиться точка с запятой
  51.  
  52.  
  53. /*
  54. функции колбеки
  55.  
  56. колбек - эта функция переданная в качестве параметра
  57.  
  58. колбек - передается в функцию, которая вызовется обратно при необходимости
  59.  
  60. колбеки - функции которые вызываются после выполнения основного дейсвия функции
  61. */
  62.  
  63.  
  64. function ask(question, yes, no){
  65. if(confirm(question)){
  66. yes();
  67. } else {
  68. no();
  69. }
  70. }
  71.  
  72. function showOk(){
  73. alert('Подтверждено');
  74. }
  75.  
  76. function showCansel(){
  77. alert('Не подтверждено');
  78. }
  79.  
  80. ask('Подтвердите', showOk, showCansel);
  81.  
  82. //showOk() showCansel() являются колбеками функции ask
  83.  
  84.  
  85. function ask(question, yes, no){
  86. if(confirm(question)){
  87. yes();
  88. } else{
  89. no();
  90. }
  91. }
  92.  
  93. ask(
  94. 'Подтвердите',
  95. function(){alert('Подтверждено');},
  96. function(){alert('Не подтверждено');}
  97. );
  98.  
  99.  
  100. // function(){} - функция без имени - называется анонимной функцией
  101.  
  102. /*
  103.  
  104. при Function Declaration
  105.  
  106. функция объявляется в основном потоке кода
  107.  
  108. и вызвана может быть и до и после объявления функции
  109.  
  110. */
  111.  
  112. sayHi("Вася");
  113.  
  114. function sayHi(name) {
  115. alert( `Привет, ${name}` );
  116. }
  117.  
  118.  
  119. /*
  120.  
  121. при Function Expression
  122.  
  123. функция создается внутри выражения и может вызываться только после обявления
  124.  
  125.  
  126. sayHi("Вася");
  127.  
  128. let sayHi = function(name) {
  129. alert( `Привет, ${name}` );
  130. };
  131.  
  132. такой код вызовет ошибку
  133.  
  134. правильно будет вызывать функцию после объявления
  135.  
  136. let sayHi = function(name) {
  137. alert( `Привет, ${name}` );
  138. };
  139.  
  140. sayHi("Вася");
  141. */
  142.  
  143. /*
  144.  
  145. при Function Declaration функция доступна только внутри блока в котором обявлена
  146.  
  147. let age = prompt("Сколько Вам лет?", 18);
  148.  
  149. if (age < 18) {
  150.  
  151. function welcome() {
  152. alert("Привет!");
  153. }
  154.  
  155. } else {
  156.  
  157. function welcome() {
  158. alert("Здравствуйте!");
  159. }
  160.  
  161. }
  162. welcome();
  163.  
  164. будет ошибка
  165.  
  166. ------------------------
  167.  
  168. при Function Expression
  169.  
  170. переменную можно объявить снаружи блока if
  171.  
  172. let age = prompt("Сколько Вам лет?", 18);
  173.  
  174. let welcome;
  175.  
  176. if (age < 18) {
  177.  
  178. welcome = function() {
  179. alert("Привет!");
  180. };
  181.  
  182. } else {
  183.  
  184. welcome = function() {
  185. alert("Здравствуйте!");
  186. };
  187.  
  188. }
  189.  
  190. welcome();
  191.  
  192. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement