Przeglądaj źródła

+08/index.html; +09/index.html

ilya_shyian 3 lat temu
rodzic
commit
551faa1cb7
2 zmienionych plików z 377 dodań i 0 usunięć
  1. 266 0
      js/08/index.html
  2. 111 0
      js/09/index.html

+ 266 - 0
js/08/index.html

@@ -0,0 +1,266 @@
+<!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>
+        <style>
+            .cell {
+                width: 40px;
+                height: 40px;
+                border: 1px solid black;
+                text-align: center;
+                cursor: pointer;
+            }
+
+            .row:nth-child(even) {
+                background: #eeeeee;
+            }
+        </style>
+
+        <table id="table1"></table>
+
+        <br /><br /><br />
+
+        <input type="number" name="" id="inp1" placeholder="Number 1" />
+        <input type="number" name="" id="inp2" placeholder="Number 2" />
+        <input type="text" id="result" placeholder="Sum" readonly />
+        <button id="calcBtn">Calc</button>
+
+        <script>
+//ES6
+    // //ПОДСВЕТИТЬ СТРОКУ И СТОЛБЕЦ
+            // function lightUp({ event } = {}) {
+            //     const cellIdx = this.cellIndex;
+            //     const rows = this.parentElement.parentElement.children;
+
+            //     this.parentElement.style.backgroundColor = "#CECECE";
+
+            //     for (let row of rows) {
+            //         row.children[cellIdx].style.backgroundColor = "#CECECE";
+            //     }
+            // }
+
+            // function lightDown({ event } = {}) {
+            //     const cellIdx = this.cellIndex;
+            //     const rows = this.parentElement.parentElement.children;
+
+            //     this.parentElement.style.backgroundColor = "";
+
+            //     for (let row of rows) {
+            //         row.children[cellIdx].style.backgroundColor = "";
+            //     }
+            // }
+
+            // let table = document.querySelector("#table1");
+
+            // for (let i = 1; i < 10; i++) {
+            //     const tr = document.createElement("tr");
+            //     tr.classList.add("row");
+            //     table.append(tr);
+            //     for (let j = 1; j < 10; j++) {
+            //         const td = document.createElement("td");
+            //         td.innerText = i * j;
+            //         tr.append(td);
+            //         td.classList.add("cell");
+
+            //         td.addEventListener("mouseover", lightUp);
+            //         td.addEventListener("mouseleave", lightDown);
+            //     }
+            // }
+
+        // //CALC
+            // let inp1 = document.querySelector("#inp1");
+            // let inp2 = document.querySelector("#inp2");
+
+            // calcBtn.onclick = () => alert(+inp1.value + +inp2.value);
+
+        // //CALC LIVE
+
+            // let calc = () => (result.value = +inp1.value + +inp2.value);
+
+            // inp1.oninput = calc;
+            // inp2.oninput = calc;
+
+//SORT
+
+            // function sort(arrayToSort, key, reverse = true) {
+            //     let resultArray = [...arrayToSort];
+            //     if (!reverse) {
+            //         for (let j = 0; j < resultArray.length; j++)
+            //             for (let i = 0; i < resultArray.length - 1; i++) {
+            //                 if (resultArray[i][key] < resultArray[i + 1][key]) {
+            //                     [resultArray[i], resultArray[i + 1]] = [resultArray[i + 1], resultArray[i]];
+            //                 }
+            //             }
+            //     } else {
+            //         for (let j = 0; j < resultArray.length; j++)
+            //             for (let i = 0; i < resultArray.length - 1; i++) {
+            //                 if (resultArray[i][key] > resultArray[i + 1][key]) {
+            //                     [resultArray[i], resultArray[i + 1]] = [resultArray[i + 1], resultArray[i]];
+            //                 }
+            //             }
+            //     }
+            //     return resultArray;
+            // }
+            // sort(persons, "age"); //сортирует по возрасту по возрастанию
+            // sort(persons, "name", false); //сортирует по имени по убыванию
+
+//ARRAY MAP
+            // let arr = ["1", {}, null, undefined, "500", 700];
+
+            // console.log(arr.map((item) => (typeof item === "string" ? (item = +item) : item)));
+
+//ARRAY REDUCE
+
+            // let arr = ["0", 5, 3, "string", null];
+
+            // console.log(
+            //     arr.reduce((sum, item, index) => {
+            //         if (typeof item !== "number") {
+            //             return sum;
+            //         }
+            //         return sum === null ? (sum = item) : (sum *= item);
+            //     }, null)
+            // );
+
+//OBJECT FILTER
+
+            // var phone = {
+            //     brand: "meizu",
+            //     model: "m2",
+            //     ram: 2,
+            //     color: "black",
+            // };
+
+            // function filter(objToFilter, cb) {
+            //     let obj = { ...objToFilter };
+            //     for (let [key, value] of Object.entries(obj)) {
+            //         !cb(key, value) && delete obj[key];
+            //     }
+            //     return obj;
+            // }
+
+            // console.log(filter(phone, (key, value) => key == "color" || value == 2));
+
+//OBJECT MAP
+
+            // function map(objToMap, cb) {
+            //     let obj = { ...objToMap };
+            //     for ([key, value] of Object.entries(obj)) {
+            //         let [[newKey, newValue]] = Object.entries(cb(key, value));
+            //         delete obj[key];
+            //         obj[newKey] = newValue;
+            //     }
+            //     return obj;
+            // }
+
+            // console.log(
+            //     map({ name: "Иван", age: 17 }, function (key, value) {
+            //         var result = {};
+            //         result[key + "_"] = value + "$";
+            //         return result;
+            //     })
+            // ); //должен вернуть {name_: "Иван$", age_: "17$"}
+
+//SUM
+
+            // function sum(start, end, step = 1) {
+            //     let rez = start;
+            //     if (rez < end) {
+            //         rez += +sum(rez + step, end, step);
+            //     }
+            //     return rez;
+            // }
+
+            // console.log(sum(1, 15));
+
+//HTML TREE
+
+            // let dictHTML = {
+            //     tagName: "body",
+            //     attrs: {},
+            //     subTags: [
+            //         {
+            //             tagName: "div",
+            //             attrs: {},
+            //             subTags: [
+            //                 {
+            //                     tagName: "span",
+            //                     text: "Enter a data please:",
+            //                     attrs: {},
+            //                     subTags: [],
+            //                 },
+            //                 {
+            //                     tagName: "br",
+            //                     attrs: {},
+            //                     subTags: [],
+            //                 },
+            //                 {
+            //                     tagName: "input",
+            //                     attrs: {
+            //                         type: "text",
+            //                         id: "name",
+            //                     },
+            //                     subTags: [],
+            //                 },
+            //                 {
+            //                     tagName: "input",
+            //                     attrs: {
+            //                         type: "text",
+            //                         id: "surname",
+            //                     },
+            //                     subTags: [],
+            //                 },
+            //             ],
+            //         },
+            //         {
+            //             tagName: "div",
+            //             attrs: {},
+            //             subTags: [
+            //                 {
+            //                     tagName: "button",
+            //                     attrs: {
+            //                         id: "ok",
+            //                     },
+            //                     text: "OK",
+            //                     subTags: [],
+            //                 },
+            //                 {
+            //                     tagName: "button",
+            //                     attrs: {
+            //                         id: "cancel",
+            //                     },
+            //                     text: "Cancel",
+            //                     subTags: [],
+            //                 },
+            //             ],
+            //         },
+            //     ],
+            // };
+
+            // function contsractHTML(htmlTree) {
+            //     let str = `<${htmlTree["tagName"]}`;
+            //     for (attrName in htmlTree["attrs"]) {
+            //         str += ` ${attrName}="${htmlTree["attrs"][attrName]}" `;
+            //     }
+            //     str += ">";
+            //     str += htmlTree["text"] ?? "";
+            //     if (htmlTree.subTags) {
+            //         for (tag of htmlTree.subTags) str += contsractHTML(tag);
+            //     }
+
+            //     str += `</${htmlTree["tagName"]}>`;
+
+            //     return str;
+            // }
+
+            // let html = contsractHTML(dictHTML);
+
+            // document.write(html);
+        </script>
+    </body>
+</html>

+ 111 - 0
js/09/index.html

@@ -0,0 +1,111 @@
+<!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
+
+            // let makeProfileTimer = () => {
+            //     let startTime = performance.now();
+            //     return () => performance.now() - startTime;
+            // };
+
+            // var timer = makeProfileTimer();
+            // alert("Замеряем время работы этого alert"); //некий код, время выполнения которого мы хотим измерить с высокой точностью
+            // alert(timer());
+
+//MAKESAVER
+
+            // let makeSaver = (cb) => {
+            //     let someVariableToSave;
+            //     return () => {
+            //         if (someVariableToSave === undefined) {
+            //             someVariableToSave = cb();
+            //         }
+            //         return someVariableToSave;
+            //     };
+            // };
+
+            // var saver = makeSaver(Math.random);
+            // var value1 = saver(); //saver вызывает переданную в makeSaver функцию, запоминает результат и возвращает его
+            // var value2 = saver(); //saver в дальнейшем просто хранит результат функции, и более НЕ вызывает переданную
+            // //в makeSaver функцию;
+            // console.log(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();
+
+            // console.log(value3 === value4); // тоже должно быть true
+
+            // let namePrompt = prompt.bind(window, "Как тебя зовут?");
+            // let nameSaver = makeSaver(namePrompt);
+            // alert(`Привет! Prompt еще не было!`);
+            // alert(`Привет ${nameSaver()}. Только что запустился prompt, первый и последний раз`);
+            // alert(`Слушай, ${nameSaver()}, го пить пиво. Ведь prompt был только один раз`);
+
+//FINAL COUNTDOWN
+
+            // (() => {
+            //     let num = 5;
+            //     for (let i = num; i > 0; i--) {
+            //         setTimeout(() => console.log(i), i * 1000);
+
+            //         i === num && setTimeout(() => console.log("поехали!"), (num + 1) * 1000);
+            //     }
+            // })();
+
+//MYBIND
+
+            // let myBind = (cb, that, paramsToBind = []) => {
+            //     return (...params) => {
+            //         let rezParams = paramsToBind.map((el, idx) => {
+            //             if (el === undefined) {
+            //                 el = params[0];
+            //                 params.shift();
+            //             }
+            //             return el;
+            //         });
+
+            //         rezParams = [...rezParams, ...params];
+            //         return cb.call(that, ...rezParams);
+            //     };
+            // };
+
+            // var pow5 = myBind(Math.pow, Math, [undefined, 5]); // первый параметр - функция для биндинга значений по умолчанию,
+            // // второй - this для этой функции, третий - массив, в котором undefined означает
+            // // параметры, которые должны передаваться при вызове,
+            // // а другие значения являются значениями по умолчанию:
+            // var cube = myBind(Math.pow, Math, [undefined, 3]); // cube возводит число в куб
+
+            // console.log(pow5(2)); // => 32, вызывает Math.pow(2,5), соотнесите с [undefined, 5]
+            // console.log(cube(3)); // => 27
+
+            // var chessMin = myBind(Math.min, Math, [undefined, 4, undefined, 5, undefined, 8, undefined, 9]);
+            // chessMin(-1, -5, 3, 15); // вызывает Math.min(-1, 4, -5, 5, 3, 8, 15, 9), результат -5
+
+            // var zeroPrompt = myBind(prompt, window, [undefined, "0"]); // аналогично, только теперь задается "0" как текст по умолчанию в prompt,
+            // // а текст приглашения пользователя задается при вызове zeroPrompt
+            // var someNumber = zeroPrompt("Введите число"); // вызывает prompt("Введите число","0")
+
+            // console.log(
+            //     myBind((...params) => params.join(""), null, [undefined, "b", undefined, undefined, "e", "f"])(
+            //         "a",
+            //         "c",
+            //         "d"
+            //     ) === "abcdef"
+            // );
+        </script>
+    </body>
+</html>