main.js 1.5 KB

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