12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <script>
- //makeProfileTimer
- function makeProfileTimer() {
- let timeStart = performance.now()
- return function sec() {
- let timeEnd = performance.now()
- return `Proshlo ${timeEnd - timeStart} millisec`
- }
- }
- let timer = makeProfileTimer()
- alert('Замеряем время работы этого alert')
- alert(timer());
- //makeSaver
- function makeSaver(name) {
- let promptNotCalled = true;
- let nameAgain
- return function () {
- if (promptNotCalled) {
- nameAgain = name()
- promptNotCalled = false
- }
- return nameAgain
- }
- }
- var saver = makeSaver(Math.random) //создает функцию-хранилище результата переданной в качестве параметра функции (Math.random
- // в примере). На этом этапе Math.random НЕ вызывается
- var value1 = saver() //saver вызывает переданную в makeSaver функцию, запоминает результат и возвращает его
- var value2 = saver() //saver в дальнейшем просто хранит результат функции, и более НЕ вызывает переданную
- //в makeSaver функцию;
- value1 === value2 // всегда true
- var saver2 = makeSaver(() => console.log('saved function called') || [null, undefined, false, '', 0, Math.random()][Math.ceil(Math.random() * 6)])
- var value3 = saver2()
- var value4 = saver2()
- value3 === value4 // тоже должно быть true
- let namePrompt = prompt.bind(window, 'Как тебя зовут?')
- let nameSaver = makeSaver(namePrompt)
- alert(`Привет! Prompt еще не было!`)
- alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`)
- alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`)
-
- //Final Countdown
- (function (sec = 0) {
- for (let a = 5; a >= 0; a--) {
- setTimeout(() => {
- if (a) {
- console.log(a)
- }
- else {
- console.log("Поехали!")
- }
- }, (sec++) * 1000)
- }
- })();
-
- </script>
- </body>
- </html>
|