main.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. function makeProfileTimer() {
  2. let start = performance.now();
  3. return function() {
  4. let end = performance.now();
  5. return end - start
  6. };
  7. }
  8. let timer = makeProfileTimer();
  9. alert("Замеряем время работы этого alert");
  10. alert(`This code took ${timer()}ms`);
  11. function makeSaver(data){
  12. let promptShowed = false;
  13. let newData;
  14. return () => {
  15. if(!promptShowed) {
  16. promptShowed = true;
  17. return newData = data()
  18. }
  19. }
  20. }
  21. var saver = makeSaver(Math.random)
  22. var value1 = saver()
  23. var value2 = saver()
  24. console.log(value1, value2)
  25. console.log(value1 === value2 )
  26. var saver2 = makeSaver(() => console.log('saved function called') || [null, undefined, false, '', 0, Math.random()][Math.ceil(Math.random()*6)])
  27. var value3 = saver2()
  28. var value4 = saver2()
  29. console.log(value3 === value4)
  30. let namePrompt = prompt.bind(window, 'Как тебя зовут?')
  31. let nameSaver = makeSaver(namePrompt)
  32. alert(`Привет! Prompt еще не было!`)
  33. alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`)
  34. alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`)
  35. let count = 5;
  36. function timer2() {
  37. console.log(count);
  38. const timeout = setTimeout(() => {
  39. timer();
  40. }, 1000);
  41. if (count > 0) {
  42. return (() => {
  43. return count--;
  44. })();
  45. }
  46. clearTimeout(timeout);
  47. if (count === 0) {
  48. console.log("поехали!");
  49. }
  50. }
  51. timer2();