en
Feedback
ToCode

ToCode

Open in Telegram

ื˜ื™ืคื™ื ืงืฆืจื™ื ืœืžืชื›ื ืชื™ื ืžืืช ื™ื ื•ืŸ ืคืจืง

Show more
1 420
Subscribers
No data24 hours
+27 days
-230 days
Posts Archive
ToCode
1 419
# ืงื‘ื•ืฆื•ืช ืื˜ื•ืžื™ื•ืช ื‘ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืืจื™ื™ื ืื—ื“ ื”ืฉื™ื ื•ื™ื™ื ื”ืžืขื ื™ื™ื ื™ื ืฉืชืžืฆืื• ื‘ืจืฉื™ืžืช ื”ื—ื™ื“ื•ืฉื™ื ืฉืœ ืคื™ื™ืชื•ืŸ 11 ื ืงืจื Regular Expressions Atomic Grouping. ืžืกืชื‘ืจ ืฉืžืื—ื•ืจื™ ื”ืฉื ื”ืžืคื•ืฆืฅ ืžืกืชืชืจ ืชื—ื‘ื™ืจ ืคืฉื•ื˜ ื•ื—ืžื•ื“, ืฉืืคื™ืœื• ื™ื›ื•ืœ ืœื”ืฆื™ืœ ืืช ื”ืžืขืจื›ืช ืฉืœื›ื ืžื”ืชืจืกืงื•ืช ืื˜ื•ืžื™ืช. ืื—ืช ื”ื‘ืขื™ื•ืช ืขื ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืืจื™ื™ื ื ืงืจืืช Catastrophic Backtracking. ืงื—ื• ืœื“ื•ื’ืžื” ืืช ื”ื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™:
re = /W(X|Y+)+Z/
ื•ืืช ื”ื˜ืงืกื˜:
text = "WYYYYYYYYYYYYYYYYYYYYYYYYYYYYA"
ื›ืฉืชื‘ืงืฉื• ืžืจื•ื‘ื™ (ืื• ื›ืœ ืžืคืขื ื— ืื—ืจ) ืœื‘ื“ื•ืง ืื ื”ื˜ืงืกื˜ ืžืชืื™ื ืœื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™ ืชื•ืคืชืขื• ืœืจืื•ืช ืฉืœืžืจื•ืช ืฉืฉื•ื ื“ื‘ืจ ืคื” ืœื ืืจื•ืš ื‘ืžื™ื•ื—ื“, ื–ื” ืœื•ืงื— ื›ืžื” ืฉื ื™ื•ืช ื˜ื•ื‘ื•ืช ืขื“ ืฉืžืงื‘ืœื™ื ืชืฉื•ื‘ื”. ื”ืกื™ื‘ื” ื”ื™ื ืฉืžื ื•ืข ื”ื‘ื™ื˜ื•ื™ื™ื ื”ืจื’ื•ืœืืจื™ื™ื ื›ืœ ื”ื–ืžืŸ ื—ื•ื–ืจ ื•ืžื ืกื” ืขื•ื“ ื•ืขื•ื“ ืืคืฉืจื•ื™ื•ืช ืžืชื•ืš ื”ืงื‘ื•ืฆื” X|Y+, ื•ืขืœ ื›ืœ ืืคืฉืจื•ืช ืžื ืกื” ืขื•ื“ ื•ืขื•ื“ ืืคืฉืจื•ื™ื•ืช ืœื›ืžื” ืคืขืžื™ื ื”ืงื‘ื•ืฆื” ืชื•ืคื™ืข. ืกื™ืžื•ืŸ ืงื‘ื•ืฆื” ื‘ืชื•ืจ ืงื‘ื•ืฆื” ืื˜ื•ืžื™ืช ืื•ืžืจ ืœืžื ื•ืข ื”ื‘ื™ื˜ื•ื™ื™ื ื”ืจื’ื•ืœืืจื™ื™ื ืœื ืœื—ื–ื•ืจ ืœื—ืคืฉ ื”ืชืืžื•ืช ืžืื•ืชื” ืงื‘ื•ืฆื” ืื—ืจื™ ืฉื›ื‘ืจ ื‘ื—ืจื ื• ืžืžื ื” ืื™ื–ื•ืฉื”ื™ ืืคืฉืจื•ืช. ื›ืœื•ืžืจ ืคืขื ืื—ืช ื ื›ื ืกืช ื•ืœืงื—ืช ืืช ื›ืœ ื” Y-ื™ื ืฉื™ืชืื™ืžื• ืœ Y ืฉื‘ืชื•ืš ื”ืงื‘ื•ืฆื”, ื•ื–ื”ื• ื–ื” ืžื” ืฉื™ืฉ. ืžืคื” ืืชื” ืœื ื ื›ื ืก ืฉื•ื‘ ืœืงื‘ื•ืฆื” ื”ื–ืืช ื•ืžื ืกื” ืžืกืคืจ ืื—ืจ ืฉืœ Y-ื™ื ืฉื™ืชืื™ืžื•. ื”ืฆืœื™ื—? ื™ื•ืคื™, ืœื ื”ืฆืœื™ื—? ืžื ืชืงื™ื. ื‘ืฉื‘ื™ืœ ืœื”ื’ื“ื™ืจ ืงื‘ื•ืฆื” ืื˜ื•ืžื˜ื™ืช ืื ื—ื ื• ื›ื•ืชื‘ื™ื ื‘ืชื•ืš ื”ืกื•ื’ืจื™ื™ื ืกื™ืžืŸ ืฉืืœื” ื•ืื—ืจื™ื• ืกื™ืžืŸ ื’ื“ื•ืœ-ืž ื•ืื– ืืช ื”ืชื•ื›ืŸ, ื‘ืžืงืจื” ืฉืœื ื• ื”ื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืืจื™ ื™ื”ื™ื”:
re = /W(?>X|Y+)+Z/
ื ื™ืกื™ื•ืŸ ืœื”ืชืื™ื ื‘ื™ื˜ื•ื™ ื›ื–ื” ืขืœ ื”ื˜ืงืกื˜ ื™ื™ื›ืฉืœ ืžื™ื“, ืžื” ืฉืขืฉื•ื™ ืœื”ืฆื™ืœ ืืช ื”ืฉืจืช ืื ื”ืงืœื˜ ื’ื“ื•ืœ ื•ืžื›ื•ื•ืŸ ืœื”ื–ื™ืง. ืฉื™ืžื• ืœื‘ ืฉืฉื™ื ื•ื™ ืงื‘ื•ืฆื” ืœืงื‘ื•ืฆื” ืื˜ื•ืžื™ืช ืžืฉื ื” ืืช ื”ืžืฉืžืขื•ืช ืฉืœ ื”ื‘ื™ื˜ื•ื™. ืœื“ื•ื’ืžื” ื”ื‘ื™ื˜ื•ื™ ื”ื–ื”:
re = /a(bc|b)c/
ื™ืชืื™ื ืœื˜ืงืกื˜ื™ื abc ื• abcc, ืื‘ืœ ืื ืื ื™ ื”ื•ืคืš ืืช ื”ืงื‘ื•ืฆื” ืœืื˜ื•ืžื™ืช ื•ื”ืื•ืคืฆื™ื” ืฉืœ bc ืชื™ื›ืฉืœ, ื”ืžื ื•ืข ืœื ื™ื—ื–ื•ืจ ืœื ืกื•ืช ืืช b ื•ืœื›ืŸ ื”ื˜ืงืกื˜ abc ืœื ื™ืชืื™ื ืœื‘ื™ื˜ื•ื™ a(?>bc|b)c. ื‘ืกืš ื”ื›ืœ ืงื‘ื•ืฆื•ืช ืื˜ื•ืžื™ื•ืช ื”ืŸ ื›ืœื™ ืžืชืงื“ื ืฉื—ืฉื•ื‘ ืœื”ื›ื™ืจ ืื ืืชื ืžืฉืชืžืฉื™ื ื‘ื‘ื™ื˜ื•ื™ื™ื ืจื’ื•ืœืืจื™ื™ื ืขืœ ืงืœื˜ ืœื ืžืคื•ืœื˜ืจ ื•ืจื•ืฆื™ื ืœื•ื•ื“ื ืฉืงืœื˜ ื–ื“ื•ื ื™ ืœื ืฉื•ื‘ืจ ืœื›ื ืืช ื”ืฉืจืช. ื•ื”ื—ืœ ืžืคื™ื™ืชื•ืŸ 3.11 ืชื•ื›ืœื• ืœื”ืฉืชืžืฉ ื‘ื”ืŸ ื’ื ื‘ืคื™ื™ืชื•ืŸ.

ToCode
1 419
# ื˜ื™ืค ื˜ื™ื™ืคืกืงืจื™ืคื˜: ื”ื”ื‘ื“ืœ ื‘ื™ืŸ let ื• const ืžื‘ื—ื™ื ืช Type Inference ืœืงื— ืœื™ ืงืฆืช ื–ืžืŸ ืœืฉื™ื ืœื‘ ืœื–ื” ืื– ืžืฉืชืฃ ื›ื“ื™ ืฉืืชื ืœื ืชืชื‘ืœื‘ืœื•. ืžื ื’ื ื•ืŸ ื” Type Inference ืฉืœ ื˜ื™ื™ืคืกืงืจื™ืคื˜, ื–ื” ืฉืื—ืจืื™ ืขืœ ื‘ื—ื™ืจืช ื”ื˜ื™ืคื•ืกื™ื ื‘ืฆื•ืจื” ืื•ื˜ื•ืžื˜ื™ืช ื‘ืงื•ื“ ืฉืœื›ื, ืžืฉืชืžืฉ ื‘ืชื—ื™ืœื™ืช let ืื• const ื›ื“ื™ ืœื”ื—ืœื™ื˜ ืื "ืœื”ืจื—ื™ื‘" ืืช ื”ื˜ื™ืคื•ืก ืื• ืœื”ืฉืชืžืฉ ื‘ื˜ื™ืคื•ืก ืœื™ื˜ืจืœื™. ื‘ืžื™ืœื™ื ืื—ืจื•ืช ื•ื™ื•ืชืจ ืกืคืฆื™ืคื™, ื”ืงื•ื“ ื”ื–ื” ืžื’ื“ื™ืจ ืืช x ืœื”ื™ื•ืช ืžื”ื˜ื™ืคื•ืก ื”ืœื™ื˜ืจืœื™ 10:
const x = 10;
ืื‘ืœ ื”ืงื•ื“ ื”ื–ื” ืžื’ื“ื™ืจ ืืช x ืœื”ื™ื•ืช number:
let x = 10;
ื‘ื“ืจืš ื›ืœืœ ืœื ื ืฉื™ื ืœื‘ ืœื”ื‘ื“ืœ ืขื“ ืฉื–ื” ื™ืชื—ื™ืœ ืœื”ืคืจื™ืข. ืœืžืฉืœ ื”ืงื•ื“ ื”ื–ื” ืœื ืžืชืงืžืคืœ:
const movie = { name: 'Return Of The Jedi', rating: 5 };
let key = Math.random() > 0.5 ? "name" : "rating";
console.log(movie[key]);
ื•ืœื ื‘ื’ืœืœ ืฉื˜ื™ื™ืคืกืงืจื™ืคื˜ ื›ื•ืขืก ืขืœ ื”ื“ื™ืจื•ื’ ื”ื’ื‘ื•ื” ืฉืœ "ืฉื•ื‘ื• ืฉืœ ื”ื’'ื“ื™ื™". ื”ื•ื ืคืฉื•ื˜ ืจื•ืื” ืืช ื” let ืœืคื ื™ ื” key, ืžื—ืœื™ื˜ ืฉ key ื”ื•ื string ื•ืœื ืžื‘ื™ืŸ ืื™ืš ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ string ื›ืœืœื™ ื‘ืชื•ืจ ืžืคืชื— ื‘ื’ื™ืฉื” ืœืื•ื‘ื™ืงื˜ movie. ื”ืชื™ืงื•ืŸ ื”ื›ื™ ืงืœ ื”ื•ื ืœื”ืคื•ืš ืืช ื”ื’ื“ืจืช ื”ืžืฉืชื ื” ืœ const:
const movie = { name: 'Return Of The Jedi', rating: 5 };
const key = Math.random() > 0.5 ? "name" : "rating";
console.log(movie[key]);
ื•ื›ื›ื” ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืžื‘ื™ืŸ ืฉื”ื˜ื™ืคื•ืก ืฉืœ key ื”ื•ื ื”ืื™ื—ื•ื“ ื‘ื™ืŸ ืฉื ื™ ื”ื˜ื™ืคื•ืกื™ื ื”ืœื™ื˜ืจืœื™ื™ื name ื• rating, ื•ื‘ื’ืœืœ ืฉืฉื ื™ื”ื ืžืคืชื—ื•ืช ื‘ movie ื”ื•ื ืžืจืฉื” ืœื™ ืœื”ืฉืชืžืฉ ื‘ key ื‘ืชื•ืจ ืžืคืชื— ื‘ืื•ื‘ื™ืงื˜. ื .ื‘. ืœืืœื” ืžื›ืŸ ืฉืคื—ื•ืช ืื•ื”ื‘ื™ื ืœื”ืชื—ื›ื, ืืคืฉืจ ืœื›ืชื•ื‘ ืืช ืื•ืชื” ื”ื“ื•ื’ืžื” ื‘ืœื™ ื” random ื‘ื›ืœืœ:
const movie = { name: 'Return Of The Jedi', rating: 5 };
let key = "name";
console.log(movie[key]);
ืื‘ืœ ื–ื” ืขืœื•ืœ ืœื”ืจื•ืก ืืช ื”ื›ื™ืฃ.

ToCode
1 419
# ื”ืืชืจ ื”ื—ื“ืฉ ื‘ืื•ื•ื™ืจ ืืชืจ ื˜ื•ืงื•ื“ ื”ื—ื“ืฉ ืขืœื” ืœืื•ื•ื™ืจ ืืชืžื•ืœ ื•ืื ืืชื ืงื•ืจืื™ื ืืช ื–ื” ืžื”ืืชืจ ืืชื ื›ื‘ืจ ื™ื›ื•ืœื™ื ืœืจืื•ืช ืืช ื”ืฉื™ื ื•ื™ (ืื ืืชื ื‘ืžื™ื™ืœ ืื• ื‘ื˜ืœื’ืจื - ืชืงืคืฆื• ืœื‘ืงืจ ื“ืจืš ื”ืœื™ื ืง). ื—ื•ืฅ ืžืฉื™ื ื•ื™ ื”ืขื™ืฆื•ื‘ ื™ืฉ ื’ื ื›ืžื” ืคื™ืฆ'ืจื™ื ื—ื“ืฉื™ื: 1. ื ื•ืกืคื” ืืคืฉืจื•ืช ืœืžื ื•ื™ ืฉื ืชื™, ื‘ื• ืืชื ืžืฉืœืžื™ื ืขืœ 10 ื—ื•ื“ืฉื™ื ืžืจืืฉ ื•ืžืงื‘ืœื™ื ืืช ื”ื—ื•ื“ืฉื™ื™ื ื”ืื—ืจื•ื ื™ื ืžืชื ื”. 2. ื ื•ืกืคื” ืืคืฉืจื•ืช ืœืžื ื•ื™ ื‘ืชืฉืœื•ื ืžืจืืฉ ืฉืื™ื ื• ืžืชื—ื“ืฉ ืœืชืงื•ืคื” ืœื‘ื—ื™ืจืชื›ื. ืืชื ืคืฉื•ื˜ ืžืกืžื ื™ื ื›ืžื” ื—ื•ื“ืฉื™ื ืืชื ืจื•ืฆื™ื, ืžืฉืœืžื™ื ื•ืฉื•ื›ื—ื™ื ืžื–ื”. 3. ื ื•ืกืคื” ืืคืฉืจื•ืช ืœืฆืคื™ื” ื‘ื˜ืงืกื˜ ื•ื‘ื•ื™ื“ืื• ื‘ืื•ืชื• ื–ืžืŸ: ื‘ืชื•ืš ื ื’ืŸ ื”ื•ื™ื“ืื• ืืชื ืœื•ื—ืฆื™ื ืขืœ ื”ืื™ื™ืงื•ืŸ ืฉืžืจืื” ื—ืฅ ืงื˜ืŸ ืœืชื•ืš ืจื™ื‘ื•ืข ื‘ืฆื“ (ื–ื” ื‘ืชื•ืš ื”ื•ื™ื“ืื• ืื ื™ ืœื ื‘ื˜ื•ื— ืฉืชื™ืืจืชื™ ืื•ืชื• ื ื›ื•ืŸ, ืคืฉื•ื˜ ืชื ืกื• ืืช ื–ื”), ื•ืื– ื”ืกืจื˜ "ื™ื•ืฆื" ืžื”ื ื’ืŸ ื•ืžืชื—ื™ืœ ืœืจื—ืฃ ื‘ืืชืจ. ื›ืฉื–ื” ืงื•ืจื” ืืชื ืขื•ื‘ืจื™ื ืœื˜ืื‘ "ื˜ืงืกื˜" ื•ืชื•ื›ืœื• ืœืจืื•ืช ืฉื”ื•ื™ื“ืื• ืžืžืฉื™ืš ืœื”ืชื ื’ืŸ. ื‘ืขืชื™ื“ ืื•ืœื™ ืืžืฆื ื“ืจืš ืœื”ืฉืื™ืจ ืืช ื”ื•ื™ื“ืื• ืžื ื’ืŸ ื’ื ื‘ื ื™ื•ื•ื˜ ืœื“ืคื™ื ืื—ืจื™ื. 4. ื ื•ืกืฃ "ืžืฆื‘ ื—ืฉื•ืš" ืœืžื™ ืฉืื•ื”ื‘ื™ื ืœืงืจื•ื ืžื”ื˜ืœืคื•ืŸ ื‘ืœื™ืœื”. ืžืื—ื•ืจื™ ื”ืงืœืขื™ื ื”ืฉื™ื ื•ื™ ื”ื›ื™ ื’ื“ื•ืœ ื–ื” ื”ืžืขื‘ืจ ื”ื—ื•ืฆื” ืžืจื™ืืงื˜ ืœื›ืœื™ ื” JavaScript ืฉืœ ืจื™ื™ืœืก ืฉื–ื” ื˜ื•ืจื‘ื• ื•ืกื˜ื™ืžื•ืœื•ืก. ื”ืžื˜ืจื” ืฉืœื™ ื›ืืŸ ื”ื™ืชื” ืœื”ื•ืจื™ื“ ืขืœื•ื™ื•ืช ื•ืœืืคืฉืจ ืฉื™ื ื•ื™ื™ ืขื™ืฆื•ื‘ ืžื”ื™ืจื™ื ืจืง ื“ืจืš ืฉื™ื ื•ื™ HTML ื‘ืœื™ ืœื—ืฉื•ื‘ ืขืœ ื”ืžืขืจื›ืช ื‘ืชื•ืจ "ืืคืœื™ืงืฆื™ื”", ื•ื‘ืขืฆื ืœื”ืคื•ืš ืืช ื”ืงื•ื“ ืœื”ืจื‘ื” ื™ื•ืชืจ ืคืฉื•ื˜. ืื ืืชื ืžื ื•ื™ื™ื ืฉืœ ื”ืืชืจ ื•ืจื•ืฆื™ื ืœืขื‘ื•ืจ ืœืื—ื“ ื”ืžืกืœื•ืœื™ื ืฉืœ "ืžื ื•ื™ ืฉื ืชื™" ืื• "ืžื ื•ื™ ื‘ืชืฉืœื•ื ืžืจืืฉ" ื›ืจื’ืข ืชืฆื˜ืจื›ื• ืœื‘ืฆืข "ื‘ื™ื˜ื•ืœ ืžื ื•ื™" ื•ื›ืฉืชืงื•ืคืช ื”ืžื ื•ื™ ืชืกืชื™ื™ื ืชื•ื›ืœื• ืœื”ื™ืจืฉื ืžื—ื“ืฉ ืœืื—ื“ ื”ืžืกืœื•ืœื™ื. ื‘ืงืจื•ื‘ ืื•ืกื™ืฃ ืืคืฉืจื•ืช ืฉืœ ืžืขื‘ืจ ื‘ื™ืŸ ืžืกืœื•ืœื™ื ืœืžืกืš "ื”ื—ืฉื‘ื•ืŸ ืฉืœื™" ื•ื›ืฉื–ื” ื™ืงืจื” ื’ื ืืขื“ื›ืŸ ืคื” ื‘ื‘ืœื•ื’. ืœืžืจื•ืช ื”ืจื‘ื” ื‘ื“ื™ืงื•ืช ืฉืœื™ ืขืœ ื”ื’ื™ืจืกื” ื”ื—ื“ืฉื” ืื ื™ ื‘ื˜ื•ื— ืฉื™ืฉ ืœื ืžืขื˜ ื“ื‘ืจื™ื ืฉืขื“ื™ื™ืŸ ืฉื‘ื•ืจื™ื. ืื ืืชื ื ืชืงืœื™ื ื‘ื‘ืขื™ื•ืช ื‘ื‘ืงืฉื” ืืœ ืชื”ืกืกื• ืœื”ืฉืื™ืจ ื”ื•ื“ืขื” ืื• ืœืฉืœื•ื— ืœื™ ืžื™ื™ืœ. ืžืงื•ื•ื” ืฉืชื”ื ื• ืžื”ืืชืจ ื”ื—ื“ืฉ ื•ืชืžืฉื™ื›ื• ืœื”ืฆืœื™ื— ื‘ืงื•ืจืกื™ื. ื™ื ื•ืŸ.

ToCode
1 419
ื•ื›ื‘ืจ ืื—ื“ ื”ื“ื‘ืจื™ื ืฉื ืฉื‘ืจื• ื–ื” ื”ื‘ื•ื˜ ื˜ืœื’ืจื ืคื” ืฉืœ ื”ื‘ืœื•ื’ โ€ฆ ืžืงื•ื•ื” ืœืชืงืŸ ืื•ืชื• ืขื•ื“ ื”ื™ื•ื

ToCode
1 419
# ื”ื™ื•ื ืœืžื“ืชื™: ืคื™ื™ืจืคื•ืงืก ื•ืžืืคื™ื™ืŸ auto complete ืื—ื“ ื”ืžืืคื™ื™ื ื™ื ืฉื”ื›ื™ ืคื—ื•ืช ื”ืฉืชืžืฉืชื™ ื‘ื”ื ื‘ืคื™ืชื•ื— ื”ื•ื autocomplete ืฉืœ ื˜ืคืกื™ื ื•ืชื™ื‘ื•ืช ื˜ืงืกื˜. ื”ื ื” ื”ืคื™ืกืงื” ืžื”ืชื™ืขื•ื“ ืฉืžืกื‘ื™ืจื” ืขืœ ื”ืคื™ืฆ'ืจ: > The HTML autocomplete attribute lets web developers specify what if any permission the user agent has to provide automated assistance in filling out form field values, as well as guidance to the browser as to the type of information expected in the field. ื–ื” ืœื ื ืฉืžืข ืžืœื”ื™ื‘ ื›ื™ ืจื•ื‘ ื”ื–ืžืŸ ื›ืฉืœื ืžืฆื™ื™ื ื™ื ืืช ื”ืžืืคื™ื™ืŸ ื”ื–ื” ื“ืคื“ืคื ื™ื ืžืชื ื”ื’ื™ื ื›ืžื• ื“ืคื“ืคื ื™ื ื•ืขื•ืฉื™ื ืืช ื”ื“ื‘ืจ ื”ื ื›ื•ืŸ. ืœืคื—ื•ืช ืขื“ ืคื™ื™ืจืคื•ืงืก. ืคื™ื™ืจืคื•ืงืก ืจื•ืฆื” ืœืขื–ื•ืจ ืœืžืฉืชืžืฉื™ื ื•ืœื›ืŸ ื›ืฉื”ืขืžื•ื“ ืฉืœื›ื ื›ื•ืœืœ ื˜ื•ืคืก, ื•ืžืฉืชืžืฉ ื”ืชื—ื™ืœ ืœื”ืงืœื™ื“ ื˜ืงืกื˜ ื‘ืชื•ืš ื”ืชื™ื‘ื•ืช ื•ืื– ืžืจืขื ืŸ ืืช ื”ืขืžื•ื“, ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ืคื™ื™ืจืคื•ืงืก ื™ืžืœื ืืช ื”ื˜ืงืกื˜ ืฉืงื•ื“ื ื”ื™ื” ื‘ืชื™ื‘ื•ืช ื’ื ื‘ืขืžื•ื“ ืฉื ื˜ืขืŸ ืžื—ื“ืฉ, ื›ืื™ืœื• ืฉื”ืžืฉืชืžืฉ ื”ืงืœื™ื“ ืืช ื”ื˜ืงืกื˜ ืฉื•ื‘ (ืื‘ืœ ื‘ืœื™ ืื™ืจื•ืขื™ ื” JavaScript ืฉื”ื™ื• ืžืœื•ื•ื™ื ืœืื•ืชื” ื”ืงืœื“ื”). ื”ืชื•ืฆืื” ื”ื™ื ืฉืื ื—ื ื• ืžืื‘ื“ื™ื ื•ื•ืœื™ื“ืฆื™ื•ืช, ื”ืฉืœืžื” ืื•ื˜ื•ืžื˜ื™ืช ืื• ื—ื™ืคื•ืฉื™ื ืฉืื•ืœื™ ืžื™ืžืฉื ื• ื›ืฉื“ืฃ ื ื˜ืขืŸ ืžื—ื“ืฉ ืืคื™ืœื• ืื ื–ื” ื”ื™ื” ื‘ื˜ืขื•ืช, ื•ื–ื” ื’ื•ืจื ืœื˜ื•ืคืก ืœื”ื™ืจืื•ืช ืจืข. ื•ื–ื” ืžื—ื–ื™ืจ ืื•ืชื ื• ืœืžืืคื™ื™ืŸ autocomplete. ืื ื”ื˜ื•ืคืก ืฉืœื›ื ืœื ืขืจื•ืš ืœืžื™ืœื•ื™ ืื•ื˜ื•ืžื˜ื™ ืขืœ ื™ื“ื™ ื“ืคื“ืคืŸ, ืžื•ืžืœืฅ ืœื”ื’ื™ื“ ืœื“ืคื“ืคืŸ ืœื ืœืžืœื ืืช ื”ืฉื“ื•ืช ืœื‘ื“. ืืคืฉืจ ืœื‘ื˜ืœ ืืช automcomplete ืขืœ ื”ื˜ื•ืคืก ื›ื•ืœื•:
<form method="post" action="/form" autocomplete="off">
  โ€ฆ
</form>
ืื• ื‘ืจืžืช ื” input:
<input type="text" id="cc" name="cc" autocomplete="off" />
ืื– ื›ืŸ ื›ืžื•ื‘ืŸ ืฉื”ื›ื™ ื˜ื•ื‘ ืฉื”ืืชืจ ืฉืœื›ื ืžื•ืชืื ืœื›ืœ ื”ืžืฆื‘ื™ื ื‘ืขื•ืœื ื•ื™ื•ื“ืข ืœื”ืชืžื•ื“ื“ ืขื ื˜ืงืกื˜ ืฉืžืžื•ืœื ืื•ื˜ื•ืžื˜ื™ืช ื‘ื˜ื•ืคืก ืขืœ ื™ื“ื™ ื”ื“ืคื“ืคืŸ, ืื‘ืœ ืื ื–ื” ืœื ื”ืžืฆื‘ ืฉื•ื•ื” ืœืกืคืจ ืœื“ืคื“ืคืŸ ื•ืœื—ืกื•ืš ืžื‘ื•ื›ื” ืžื•ืœ ื”ืžืฉืชืžืฉื™ื. ื .ื‘. ื“ื•ื’ืžื”? ื™ืืœืœื” ื“ื•ื’ืžื”. ื”ื ื” ืงื•ื“ืคืŸ: https://codepen.io/ynonp/pen/RwJPYYX. ื‘ืงื™ืฉื•ืจ ื”ื–ื” ืืคืฉืจ ืœืจืื•ืช ืื•ืชื• ืขืœ ืžืกืš ืžืœื: https://cdpn.io/pen/debug/RwJPYYX ื”ื˜ื•ืคืก ื›ื•ืœืœ ืงื•ื“ ื˜ื™ืคื•ืœ ื‘ืื™ืจื•ืข ืฉื›ื•ืชื‘ ืืช ืžืกืคืจ ื”ืชื•ื•ื™ื ืฉื‘ืชื™ื‘ืช ื”ื—ื™ืคื•ืฉ ืžืชื—ืช ืœืชื™ื‘ื”. ืืชื ื ื›ื ืกื™ื ืขื ืคื™ื™ืจืคื•ืงืก, ืžืงืœื™ื“ื™ื ื˜ืงืกื˜ ื‘ืชื™ื‘ื” ื•ืจื•ืื™ื ืืช ื”ืžืกืคืจ ื’ื“ืœ. ืื—ืจื™ ื–ื” ืœื•ื—ืฆื™ื F5 ื›ื“ื™ ืœืจืขื ืŸ ืืช ื”ืขืžื•ื“ ื•ืชื•ื›ืœื• ืœืจืื•ืช ืฉื”ืžืกืคืจ ื”ืชืืคืก ืื‘ืœ ื”ื˜ืงืกื˜ ืขื“ื™ื™ืŸ ื›ืชื•ื‘ ื‘ืชื™ื‘ื”. ื‘ืกื•ืฃ ืชื•ื›ืœื• ืœืžื–ืœื’ ืืช ื”ืงื•ื“ืคืŸ, ืœื”ื•ืกื™ืฃ autocomplete=off ื•ืœืจืื•ืช ืื™ืš ื”ื›ืœ ืžืกืชื“ืจ.

ToCode
1 419
# ื•ืื ื”ื•ื“ืขื•ืช ื”ืงื•ืžื™ื˜ ืœื ืžืกืคื™ืง ืื™ื ืคื•ืจืžื˜ื™ื‘ื™ื•ืช? ื ื ื™ื— ืฉื’ื™ืœื™ืชื ืฉื”ื•ื“ืขื•ืช ื”ืงื•ืžื™ื˜ ืฉืืชื ื›ื•ืชื‘ื™ื ืœื ืžืกืคื™ืง ื˜ื•ื‘ื•ืช. ื›ืœ ืคืขื ืฉืืชื ืžืกืชื›ืœื™ื ื‘ืœื•ื’ ืืชื ืœื ืžืฆืœื™ื—ื™ื ืœื”ื‘ื™ืŸ ืžื” ื‘ื“ื™ื•ืง ื’ืจื ืœืฉื™ื ื•ื™ ืžืกื•ื™ื, ืื• ืฉืฉื™ื ื•ื™ ืกืคืฆื™ืคื™ ื ืžืชื— ืขืœ ืคื ื™ ื›ืžื” ืงื•ืžื™ื˜ื™ื ื‘ืฆื•ืจื” ืฉืงืฉื” ืœื”ื‘ื™ืŸ ืื•ืชื• ื‘ git blame. ื‘ืžืฆื‘ ื›ื–ื” ืื•ืœื™ ื’ื ื”ื—ืœื˜ืช ืœืฉื™ื ืœื‘ ื•ืœืขืงื•ื‘ ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืžืฆื‘: 1. ืชื•ื›ืœื• ืœืขืฉื•ืช ื™ืฉื™ื‘ื” ืคืขื ื‘ื›ืžื” ื–ืžืŸ ืœืขื‘ื•ืจ ืขืœ ืงื•ืžื™ื˜ื™ื ื•ืœืจืื•ืช ืื™ื–ื” ืžื”ื ืืชื ืื•ื”ื‘ื™ื ื•ืื™ื–ื” ืœื. 2. ืชื•ื›ืœื• ืœื–ื”ื•ืช ืงื•ืžื™ื˜ื™ื ืฉืืชื ืœื ืื•ื”ื‘ื™ื ื•ืœืชืงืŸ ืื•ืชื ื‘ืืžืฆืขื•ืช ืจื™ื‘ื™ื™ืก. 3. ืื•ืœื™ ืชื•ื›ืœื• ืืคื™ืœื• ืœืขืฉื•ืช ืžืฉื—ืงื™ ืงื•ืžื™ื˜ื™ื ื‘ื”ื ืžื™ืฉื”ื• ืฆืจื™ืš ืœืงืจื•ื ืงื•ืžื™ื˜ ืืงืจืื™ ื•ืœื”ื‘ื™ืŸ ืžื” ื”ื™ื” ื”ืฉื™ื ื•ื™ ื‘ื•. ื•ืืคืฉืจ ืœื—ืœืง ืคืจืกื™ื ืœืžื ื—ืฉ ื•ืœื›ื•ืชื‘ืช ื”ื”ื•ื“ืขื” ื”ืžืงื•ืจื™ืช. ืžื” ืฉืืชื ืœื ืจื•ืฆื™ื ื–ื” ืœื”ื’ื™ืข ืœืžืฉื—ืงื™ื ื”ืืœื” ืขื ืฆื™ืคื™ื” ืฉื”ื›ืœ ื™ื”ื™ื” ื˜ื•ื‘, ืฉืจืง ื‘ื’ืœืœ ืฉืืชื ืžืชื—ื™ืœื™ื ืœืขืงื•ื‘ ืื—ืจื™ ื”ื•ื“ืขื•ืช ืงื•ืžื™ื˜ ื‘ืฉื ื™ื” ื›ื•ืœื ื™ื›ืชื‘ื• ื”ื•ื“ืขื•ืช ืงื•ืžื™ื˜ ืžืขื•ืœื•ืช; ื™ื•ืชืจ ืžื–ื”, ืืชื ื’ื ืœื ืจื•ืฆื™ื ืœื”ืืฉื™ื ืื• ืœื’ืจื•ื ืœืžื™ืฉื”ื• ืœื”ืจื’ื™ืฉ ืจืข ืขืœ ื”ื•ื“ืขืช ืงื•ืžื™ื˜ ืœื ืžืกืคื™ืง ื˜ื•ื‘ื”. ืื ื”ื™ืฉื™ื‘ื•ืช ื”ืืœื” ื™ื”ืคื›ื• ืœืžืกื™ื‘ืช ื”ืืฉืžื•ืช, ื‘ื” ื›ืœ ืื—ื“ ืžืชื—ื™ืœ ืœืกืคืจ ืœืžื” ื”ืงื•ืžื™ื˜ ืฉืœื• ื”ื•ื ื“ื•ื•ืงื ื”ื›ื™ ื˜ื•ื‘ ื‘ืขื•ืœื ืื– ืื™ืŸ ืคื” ืฉื•ื ืขืจืš. ืื ื—ื ื• ืžืฆื™ื‘ื™ื ืžื˜ืจื•ืช ื›ื“ื™ ืœื”ื’ื™ืข ืœืžืงื•ื ื˜ื•ื‘ ื™ื•ืชืจ, ื•ืœื›ืŸ ื‘ืจื•ืจ ืฉืื ื—ื ื• ืขื“ื™ื™ืŸ ืœื ืฉื. ื‘ืžืงื•ื ืœืขืฉื•ืช "ื™ืฉื™ื‘ื•ืช ืงื•ืžื™ื˜ื™ื" ื‘ืžื˜ืจื” ืœื”ื’ื™ืข ืœืจื’ืข ืฉื‘ื• ื›ืœ ื”ืงื•ืžื™ื˜ื™ื ื™ื”ื™ื• ื˜ื•ื‘ื™ื ื•ืœื ื ืฆื˜ืจืš ื™ื•ืชืจ ื›ืืœื” ื™ืฉื™ื‘ื•ืช, ืขื“ื™ืฃ ืœื—ืฉื•ื‘ ืขืœ "ืžืฉื—ืงื™ ืงื•ืžื™ื˜ื™ื" ื•ืœืืžืฅ ื’ื™ืฉื” ื—ื“ืฉื” - ืื ืฉื™ื ืฉื›ื•ืชื‘ื™ื ืงื•ืžื™ื˜ื™ื ื˜ื•ื‘ื™ื ื ื”ื ื™ื ืœืฉื—ืง ืขื ื”ืงื•ืžื™ื˜ื™ื ืฉืœื”ื, ื ื”ื ื™ื ืœืขืจื•ืš ืื•ืชื ื•ื ื”ื ื™ื ืœื“ื‘ืจ ืขืœื™ื”ื.

ToCode
1 419
# ืจืง ืœื”ื•ืกื™ืฃ ืฆื‘ืข ืžื™ืฉื”ื• ื‘ืจื“ื™ื˜ ืฉืืœ ื”ืฉื‘ื•ืข - "ืื ืื ื™ ืจื•ืฆื” ืœื›ืชื•ื‘ ืคืจื•ื™ืงื˜ ื›ื“ื™ ืœื”ื•ืกื™ืฃ ืื•ืชื• ืœืงื•ืจื•ืช ื—ื™ื™ื, ื”ืื ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ื ื”ืžื•ื‘ื ื™ื ื‘ืคืจื™ื™ืžื•ื•ืจืง ื’ื ืœื—ืœืงื™ื ืฉืื ืฉื™ื ืจื•ืื™ื? ืœื“ื•ื’ืžื” ืื ืื ื™ ืžืฉืชืžืฉ ื‘ Django ื›ื“ื™ ืœื‘ื ื•ืช ืืคืœื™ืงืฆื™ื™ืช ื•ื•ื‘, ื”ืื ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืจื›ื™ื‘ ื” Login ื”ืžื•ื‘ื ื” ื‘ Django?" ื”ืชืฉื•ื‘ื” ืื ื™ ื—ื•ืฉื‘ ืจืœื•ื•ื ื˜ื™ืช ืœื›ืœ ืืœื” ืฉืžืฉืชืžืฉื™ื ื‘ืคืจื•ื™ืงื˜ื™ื ื›ื“ื™ ืœื”ืชืงื‘ืœ ืœืขื‘ื•ื“ื”, ืฉื–ื” ื‘ืขืฆื ื›ื•ืœื ื•: ื”ื—ืœ ืžืฉืœื‘ ืฉืœื™ื—ืช ืงื•ืจื•ืช ื—ื™ื™ื, ื“ืจืš ื”ืจืื™ื•ื ื•ืช ื”ื˜ืœืคื•ื ื™ื ื•ื”ืจืื™ื•ืŸ ืžืžืฉ, ื›ืฉืืช ืžื’ื™ืขื” ืขื ืื•ืกืฃ ืคืจื•ื™ืงื˜ื™ื ืฉื‘ื ื™ืช ื•ื™ื›ื•ืœื” ืœื“ื‘ืจ ืขืœื™ื”ื ื”ืกื™ื›ื•ื™ื™ื ืฉืœืš ืœื”ืชืงื‘ืœ ืขื•ืœื™ื ืžืฉืžืขื•ืชื™ืช. ื•ื‘ื—ื–ืจื” ืœืจื“ื™ื˜ - ื”ืื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉืคืจื•ื™ืงื˜ ื™ืคื’ืข ื‘ืกื™ื›ื•ื™ื™ ื”ืงื‘ืœื” ืฉืœื™ ื‘ื’ืœืœ ื”ื—ืœื˜ื•ืช ืฉื•ืœื™ื•ืช? ื”ืจื™ ืจื›ื™ื‘ ื” Login ื”ื•ื ืœื ื—ืœืง ืžื”ืœื™ื‘ื” ืฉืœ ื”ืžืขืจื›ืช, ื”ื•ื ืืคื™ืœื• ืœื ื”ื›ืจื—ื™ ื›ื™ ื”ืจื‘ื” ืื ืฉื™ื ืžืฉืชืžืฉื™ื ื”ื™ื•ื ื‘ืœื•ื’ื™ืŸ ื“ืจืš ืจืฉืชื•ืช ื—ื‘ืจืชื™ื•ืช ืื• ืฉืจืชื™ ื–ื™ื”ื•ื™. ืื‘ืœ ืžืฆื“ ืฉื ื™ ื”ืื ืื™ืŸ ืคื” ืกื•ื’ ืฉืœ ืจืžืื•ืช? ืื ื™ ืžืชื™ื™ืžืจ ืœื›ืชื•ื‘ ืžืขืจื›ืช ืฉืžื ื”ืœืช ืžืฉืชืžืฉื™ื, ื•ื‘ืคื•ืขืœ ืคืฉื•ื˜ ืœื•ืงื— ืžืฉื”ื• ืžื•ื›ืŸ ื•ืจืง ืžืฉื ื” ืฉื•ืจื” ื‘ื”ื’ื“ืจื•ืช. ืžื” ื–ื” ืื•ืžืจ ืขืœื™ื™ ื‘ืชื•ืจ ืžืชื›ื ืช? ืจื•ื‘ ื”ืชืฉื•ื‘ื•ืช ื‘ืจื“ื™ื˜ ื”ื™ื• ืžืื•ื“ ืžืคืจื’ื ื•ืช ื•ื”ืžืœื™ืฆื• ื—ื“-ืžืฉืžืขื™ืช ืœื”ืฉืชืžืฉ ื‘ื›ืžื” ืฉื™ื•ืชืจ ืจื›ื™ื‘ื™ื ืžื•ื›ื ื™ื ื›ืฉื‘ื•ื ื™ื ืคืจื•ื™ืงื˜ ืœืฆื•ืจืš ืงื‘ืœื” ืœืขื‘ื•ื“ื”, ื‘ื’ืœืœ ืฉืžืขืกื™ืงื™ื ืคื•ื˜ื ืฆื™ืืœื™ื™ื ื™ืฉืžื—ื• ืœืจืื•ืช ืฉืืชื ื™ื•ื“ืขื™ื ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ ื”ื ื›ื•ืŸ ืœืžืฉื™ืžื” ื”ื ื›ื•ื ื”. ืื ื™ ื—ื•ืฉื‘ ืฉื”ืืžืช ืงืฆืช ื™ื•ืชืจ ืžื•ืจื›ื‘ืช. ืฉื™ืžื•ืฉ ื‘ื›ืœื™ ื”ื ื›ื•ืŸ ืœืžืฉื™ืžื” ื”ื ื›ื•ื ื” ืœื ืื•ืžืจ ืœื”ืชืคืฉืจ ืขืœ ื”ืžื•ืฆืจ ื‘ืฉื‘ื™ืœ ืœื—ืกื•ืš ืขื‘ื•ื“ื”. ื–ื” ื‘ืกืš ื”ื›ืœ ืื•ืžืจ ืœืžืฆื•ื ืืช ื”ื“ืจืš ืงื“ื™ืžื” ืฉื”ื™ื ื’ื ื ื›ื•ื ื” ืžื•ืฆืจื™ืช ื•ื’ื ื”ื›ื™ ื™ืขื™ืœื”. ื‘ืžืงืจื” ืฉืœ ื˜ื•ืคืก ืœื•ื’ื™ืŸ ืจืฆื•ื™ ืœื”ืฉืชืžืฉ ื‘ืžื ื’ื ื•ืŸ ื”ืžื•ื‘ื ื” ืื‘ืœ ืื ืฆืจื™ืš (ื•ื‘ื“ืจืš ื›ืœืœ ืฆืจื™ืš) ืœืขื“ื›ืŸ ืื•ืชื• ื›ื“ื™ ืฉื™ืชืื™ื ืœืžื•ืฆืจ: ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืœืขื“ื›ืŸ ืืช ื”ืฆื‘ืขื™ื, ื™ื›ื•ืœ ืœื”ื™ื•ืช ืœืขื“ื›ืŸ ื—ืœืงื™ื ืžื” Flow ืื• ื›ืœ ืฉื™ื ื•ื™ ืื—ืจ ืฉื™ื’ืจื•ื ืœืžืขืจื›ืช ืœื”ื™ืจืื•ืช ื˜ื•ื‘ ื•ืœื ื›ืžื• ืžืฉื”ื• ืฉื ื‘ื ื” ื˜ืœืื™ ืขืœ ื˜ืœืื™. ื›ืฉื”ืžืขืจื›ืช ื‘ื›ืœืœื•ืชื” ืขื•ื‘ื“ืช ื•ื ืจืื™ืช ื˜ื•ื‘, ื›ื“ืื™ ืœื‘ื—ื•ืจ ืžื ื’ื ื•ืŸ ืื—ื“, ืžื ื’ื ื•ืŸ ืœื™ื‘ื”, ืฉื‘ื• ื›ืŸ ืฉื•ื•ื” ืœื”ืฉืงื™ืข ืžืขื‘ืจ ืœืคื™ืชืจื•ื ื•ืช ื”ืžื•ื›ื ื™ื. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื”ืขื™ืฆื•ื‘, ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžื ื’ื ื•ืŸ ื” Deployments, ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื”ื‘ื“ื™ืงื•ืช, ืื• ืื•ืœื™ ื‘ื™ืฆื•ืขื™ ื”ืฉืื™ืœืชื•ืช ื‘ืฆื“ ื”ืฉืจืช. ื”ืžื˜ืจื” ื”ื™ื ืœื‘ื—ื•ืจ ืžืฉื”ื• ืื—ื“ ืฉื”ืคืจื•ื™ืงื˜ ืฉืœื›ื ืขื•ืฉื” ื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ ืžืžื” ืฉืฆืจื™ืš ืื• ืžืžื” ืฉืžื™ืฉื”ื• ื”ื™ื” ื™ื›ื•ืœ ืœืฆืคื•ืช ืžื›ื–ื” ืคืจื•ื™ืงื˜. ื”ืžืฉื”ื• ื”ื–ื” ื™ื”ื™ื” ื”ื“ื‘ืจ ืฉืชื“ื‘ืจื• ืขืœื™ื• ื‘ืจืื™ื•ืŸ ืขื‘ื•ื“ื”, ื•ื”ื•ื ืฉื™ืขื–ื•ืจ ืœื›ื ืœื”ืฉืื™ืจ ืืช ื”ืจื•ืฉื ืฉืืชื ืจื•ืฆื™ื ืœื”ืฉืื™ืจ.

ToCode
1 419
ื•ืขื ื›ืœ ื”ื›ื™ืฃ ื‘ื™ืฆื™ืจืช ืคื•ื ืงืฆื™ื•ืช ื‘ืงืœื•ืช, ื›ืคืชื•ืจ ืื—ื“ ืฉืื ื™ ืืคื™ืœื• ื™ื•ืชืจ ืื•ื”ื‘ ื”ื•ื Show Call Hierarchy. ื ื•ืกื™ืฃ ืงืจื™ืื” ืœ twice ืœืชื•ืš ืื—ืช ื”ืคื•ื ืงืฆื™ื•ืช:
function clearHeadersText(headers: NodeListOf<Element>) {
  headers.forEach(header => {
    console.log(header.textContent);
  });
  alert(twice(5));
}
ื•ืขื›ืฉื™ื• ื ื›ื ืก ืœืงื•ื‘ืฅ utils.ts, ื›ืคืชื•ืจ ื™ืžื ื™ ืขืœ ื”ืคื•ื ืงืฆื™ื” twice ื•ืœื—ื™ืฆื” ืขืœ Show Call Hierarchy. ื‘ืชื’ื•ื‘ื” ืชืงื‘ืœื• ืืช ืจืฉื™ืžืช ื”ืžืงื•ืžื•ืช ืฉื”ืคื•ื ืงืฆื™ื” ื”ื–ืืช ื ืงืจืืช ื‘ื”ื, ื•ื›ื›ื” ืงืœ ืœื–ื”ื•ืช ืžื™ ืžืฉืชืžืฉ ื‘ืคื•ื ืงืฆื™ื” ืื• ืœื”ื•ืกื™ืฃ ืื• ืœื”ื•ืจื™ื“ ืคืจืžื˜ืจ. ## ืขื–ืจื” ื‘ื›ืชื™ื‘ืช ื”ืงื•ื“ ื’ื ื‘ื›ืชื™ื‘ืช ืงื•ื“ ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื™ื•ื“ืข ืœืขื–ื•ืจ ืœื ื• ื‘ืขื–ืจืช ืžืขืจื›ืช ื”ืฉืœืžื” ืื•ื˜ื•ืžื˜ื™ืช ื”ืžื•ื“ืขืช ืœืงื•ื ื˜ืงืกื˜ ื•ืžื–ื”ื” ืžื” ืื ื™ ืจื•ืฆื” ืœืขืฉื•ืช. ื ืขื“ื›ืŸ ืืช ื”ืคื•ื ืงืฆื™ื” clearHeadersText ืœืงื•ื“ ื”ื‘ื:
function clearHeadersText(headers: NodeListOf<HTMLHeadElement>) {
  headers.forEach(header => {
    console.log(header.textContent);
  });
  alert(twice(5));
}
ื‘ืขืฆื ืœื ืฉื™ื ื™ืชื™ ื›ืœื•ื ื‘ืงื•ื“ ืฉืœ ื”ืคื•ื ืงืฆื™ื” ืืœื ืจืง ืืžืจืชื™ ืœื˜ื™ื™ืคืกืงืจื™ืคื˜ ืฉืื ื™ ืžืฆืคื” ืœืงื‘ืœ ืฉื ืžืขืจืš ืฉืœ ืืœืžื ื˜ื™ื ืžืกื•ื’ HTMLHeadElement. ืชื•ืฆืื” ืื—ืช ืฉืœ ื”ืฉื™ื ื•ื™ ื”ื™ื ืฉื”ืฉื•ืจื” ืฉืžืคืขื™ืœื” ืืช ื”ืคื•ื ืงืฆื™ื” ื ืฆื‘ืขื” ืขื›ืฉื™ื• ื‘ืื“ื•ื - ื‘ื’ืœืœ ืฉื˜ื™ื™ืคืกืงืจื™ืคื˜ ื›ื‘ืจ ืœื ื‘ื˜ื•ื— ืฉื”ืคืขืœืชื™ ืื•ืชื” ืขืœ ื”ื“ื‘ืจื™ื ื”ื ื›ื•ื ื™ื. ื›ืจื’ืข ืื ื™ ืฉื ืืช ื–ื” ื‘ืฆื“. ื‘ื™ื ืชื™ื™ื ืื ื™ ืžืžืฉื™ืš ื‘ืชื•ืš ืงื•ื“ ื”ืคื•ื ืงืฆื™ื” ื•ื‘ืฉื•ืจื” 37 ืžืชื—ื™ืœ ืœื›ืชื•ื‘:
header.addEventListener('
ืคื” ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื›ื‘ืจ ื™ื•ื“ืข ื”ืจื‘ื” ืขืœ ืžื” ืฉืงื•ืจื” ืžืกื‘ื™ื‘: ื”ื•ื ื™ื•ื“ืข ืฉื™ืฉ ืœื™ ื‘ื™ื“ ืืœืžื ื˜ ืžืกื•ื’ HTMLHeadElement, ื•ื”ื•ื ื™ื•ื“ืข ืื™ื–ื” ืื™ืจื•ืขื™ื ืžื•ืชืจ ืœื›ืชื•ื‘ ืขืœ ืืœืžื ื˜ ื›ื–ื”. ื‘ื™ื“ืข ื”ื–ื” VS Code ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื•ื‘ืืžืช ืจืฉื™ืžืช ื”ื”ืฉืœืžื•ืช ืฉืื ื™ ืžืงื‘ืœ ื›ื•ืœืœืช ืืช ื›ืœ ื”ืื™ืจื•ืขื™ื ื”ืืคืฉืจื™ื™ื ืขืœ ืืœืžื ื˜ื™ head. ื‘ืฉื‘ื™ืœ ื”ืžืฉื—ืง ื ื—ื–ื™ืจ ืืช ืกื•ื’ ื”ืžืฉืชื ื” ืœื”ื™ื•ืช NodeListOf<Element> ื•ื ื•ื›ืœ ืœืจืื•ืช ืฉืจืฉื™ืžืช ื”ืื™ืจื•ืขื™ื ื”ืจื‘ื” ื™ื•ืชืจ ืงื˜ื ื”. ืœืกื™ื•ื ื ืชืงื™ืŸ ืกืคืจื™ื” ื—ื™ืฆื•ื ื™ืช ื•ื ืจืื” ืืช ื”ื”ืฉืœืžื•ืช ืฉืื ื—ื ื• ืžืงื‘ืœื™ื ื‘ืฉื‘ื™ืœื”. ืื ื™ ื—ื•ื–ืจ ืœืฉื•ืจืช ื”ืคืงื•ื“ื” ื•ืžืคืขื™ืœ:
npm install --save axios
ื‘ื—ื–ืจื” ืœืงื•ื“ ื•ื ื›ืชื•ื‘ ืคืฉื•ื˜ axios ื• Enter ื•ืื•ื˜ื•ืžื˜ื™ืช VS Code ืžื•ืกื™ืฃ ืืช ื” import ื”ืžืชืื™ื. ืื—ืจื™ ื”ืžื™ืœื” axios ื›ื•ืชื‘ื™ื ื ืงื•ื“ื” ื•ืื•ื˜ื•ืžื˜ื™ืช ืื ื—ื ื• ืจื•ืื™ื ืจืฉื™ืžื” ืฉืœ ื›ืœ ื”ืฉื“ื•ืช ืฉื™ืฉ ืขืœ ืื•ื‘ื™ืงื˜ axios. ืื ื™ ืžืฉืœื™ื ืœ get ื•ืฉื•ื‘ ืžืงื‘ืœ ืืช ืจืฉื™ืžืช ื”ืคืจืžื˜ืจื™ื, ื›ื•ืœืœ ืจืฉื™ืžืช ื”ืžืคืชื—ื•ืช ื‘ืื•ื‘ื™ืงื˜ ื”ืงื•ื ืคื™ื’ื•ืจืฆื™ื” ืฉ get ืžืฆืคื” ืœืงื‘ืœ. ## ืกื™ื›ื•ื ื”ืขื‘ื•ื“ื” ืขื ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืขื•ื–ืจืช ืœื ื• ืœื›ืชื•ื‘ JavaScript ื‘-3 ืื•ืคื ื™ื: 1. ื›ืœื™ ื”ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœื–ื”ื•ืช ื˜ืขื•ื™ื•ืช ืฉืœ ื˜ื™ืคื•ืกื™ื ืœื ื ื›ื•ื ื™ื ื•ืœื”ืชืจื™ืข ืขืœื™ื”ืŸ. 2. ื›ืœื™ ื”ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœืขื–ื•ืจ ืœื”ื–ื™ื– ืงื•ื“ ืžืžืงื•ื ืœืžืงื•ื, ื•ืœืชืงืŸ ืืช ื›ืœ ื”ืงื•ื“ ืฉืžื•ืฉืคืข ืžืื•ืชื” ื”ื–ื–ื”. 3. ื›ืœื™ ื”ืคื™ืชื•ื— ื™ื›ื•ืœื™ื ืœืขื–ื•ืจ ืœื ื• ื‘ื›ืชื™ื‘ืช ื”ืงื•ื“ ื•ืœื—ืกื•ืš ื”ืœื™ื›ื” ืœืชื™ืขื•ื“, ื›ื“ื™ ืœืงื‘ืœ ื”ืฉืœืžื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช. ื›ืœ ืคืขื ื›ืฉืื ื™ ื—ื•ื–ืจ ืœืคืจื•ื™ืงื˜ JavaScript ืื—ืจื™ ื›ืžื” ื™ืžื™ื ืื• ืฉื‘ื•ืขื•ืช ืฉืœ ืขื‘ื•ื“ืช ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื ื“ืจืฉืช ืชืงื•ืคืช ื”ืกืชื’ืœื•ืช, ื›ืžื• ืฉืคืชืื•ื ื ื›ื ืกื™ื ืœื—ื“ืจ ืงืฆืช ื™ื•ืชืจ ื—ืฉื•ืš. ื‘ื–ืžืŸ ื”ืขื‘ื•ื“ื” ืขื JavaScript ืงืฉื” ืœืจืื•ืช ืฉืžืฉื”ื• ื”ื™ื” ื—ืกืจ, ืื‘ืœ ืื—ืจื™ ืชืงื•ืคื” ืขื ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืืชื ืชืจืื• ืฉืงืฉื” ืœื—ื–ื•ืจ ืื—ื•ืจื”.

ToCode
1 419
ื ืžื—ืง ืืช ื” import ื•ื ืœืš ืœื‘ืขื•ื˜ ื‘ื• ืขื•ื“ ืงืฆืช, ื”ืคืขื ื‘ืคื•ื ืงืฆื™ื•ืช ืฉืœ ื”ืฉืคื”. ืœ TypeScript ื™ืฉ ืขื•ื“ ืฉืชื™ ื‘ื“ื™ืงื•ืช ืฉื—ืฉื•ื‘ ืœื”ื›ื™ืจ: ืงื•ื“ื ื›ืœ ื”ื•ื ืžื›ื™ืจ ืืช ื›ืœ ื”ืคื•ื ืงืฆื™ื•ืช ืฉืœ ื” DOM ื•ืฉืœ JavaScript ืจื’ื™ืœ, ื•ื™ื’ื™ื“ ืœื ื• ื›ืฉืื ื—ื ื• ืžืขื‘ื™ืจื™ื ืคืจืžื˜ืจื™ื ืœื ื ื›ื•ื ื™ื. ื“ื‘ืจ ืฉื ื™ ื”ื•ื ื‘ืขื‘ื•ื“ื” ืขื ืกืคืจื™ื•ืช ื—ื™ืฆื•ื ื™ื•ืช, ืฉื ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื™ื›ื•ืœ ืœื”ืฉืœื™ื ืœืคื™ ื”ื’ื“ืจื•ืช ื˜ื™ืคื•ืกื™ื ืฉื™ืฉ ื‘ื”ืจื‘ื” ืกืคืจื™ื•ืช. ื ืชื—ื™ืœ ืขื ื”ืกืคืจื™ื•ืช ื”ืžื•ื‘ื ื•ืช ื•ื ื•ืกื™ืฃ ืืช ื”ื‘ืœื•ืง ื”ื‘ื ื‘ืชื—ื™ืœืช ื”ืงื•ื‘ืฅ main.ts:
const headers = document.querySelector('h1,h2,h3,h4,h5,h6');
headers.forEach(h => {
  console.log(h.textContent);
});
ืจืฆื™ืชื™ ืœืงื—ืช ืืช ื›ืœ ื”ื›ื•ืชืจื•ืช, ืื‘ืœ ื”ืฉืชืžืฉืชื™ ื‘ืคื•ื ืงืฆื™ื” ื”ืœื ื ื›ื•ื ื” - ื‘ืžืงื•ื ืœื”ืฉืชืžืฉ ื‘ querySelectorAll ืงืจืืชื™ ืœ querySelector. ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืžื–ื”ื” ืฉ querySelector ืžื—ื–ื™ืจื” ืืœืžื ื˜ DOM ื™ื—ื™ื“ ืฉืœื ื›ื•ืœืœ ืืช ื”ืคื•ื ืงืฆื™ื” forEach ื•ืœื›ืŸ ืžืกืžืŸ ืœื™ ืฉืœื•ืฉื” ืงื•ื•ื™ื ืื“ื•ืžื™ื: ืžืชื—ืช ืœืžื™ืœื” headers, ืžืชื—ืช ืœืžื™ืœื” forEach ื•ืžืชื—ืช ืœืžืฉืชื ื” h. ืœืคื ื™ ืฉื ืฆืœื•ืœ ืœืงื•ื•ื™ื ื”ืื“ื•ืžื™ื ื‘ื•ืื• ื ืชืงืŸ ืืช ื”ืฉื’ื™ืื” ื•ื ื—ืœื™ืฃ ืืช ื”ืงืจื™ืื” ืœ querySelectorAll. ืชื•ื›ืœื• ืœืจืื•ืช ืฉื›ืœ ื”ืงื•ื•ื™ื ื”ืื“ื•ืžื™ื ื ืขืœืžื•. ืขื›ืฉื™ื• ืขืœ ืžื” ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื”ืชืœื•ื ืŸ? 1. ื”ืงื• ื”ืื“ื•ื ื”ืจืืฉื•ืŸ ืžืชื—ืช ืœ headers ืฆื•ื™ืจ ืฉื ื‘ื’ืœืœ ืฉ querySelector ืขืœื•ืœื” ืœื”ื—ื–ื™ืจ null. ืื ื”ื™ื ื”ื—ื–ื™ืจื” null (ืœืžืฉืœ ื›ื™ ื”ืืœืžื ื˜ ืœื ืงื™ื™ื ื‘ื“ืฃ) ืื– ื”ืคืงื•ื“ื” ืฉื›ืชื‘ืชื™ ืชื–ืจื•ืง Exception ื•ืชืจืกืง ืืช ื”ืชื•ื›ื ื™ืช. 2. ื”ืงื• ื”ืื“ื•ื ื”ืฉื ื™ ืžืชื—ืช ืœืžื™ืœื” forEach ื ืžืฆื ืฉื ื‘ื’ืœืœ ืฉื’ื ืื querySelector ื”ื™ืชื” ืžื—ื–ื™ืจื” ืืช ืžื” ืฉืจืฆื™ืชื™, ืขื“ื™ื™ืŸ ื–ื” ื”ื™ื” ืืœืžื ื˜ ื‘ื•ื“ื“ ื•ืœืืœืžื ื˜ ืื™ืŸ ืคื•ื ืงืฆื™ื™ืช forEach. 3. ื”ืงื• ื”ืื“ื•ื ื”ืฉืœื™ืฉื™ ื”ื•ื ืขืœ ื” h ื•ื”ื•ื ื”ื›ื™ ืขื“ื™ืŸ ื›ืืŸ. ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืจื•ืฆื” ืœื”ื’ื™ื“ ืฉืืคื™ืœื• ืื ื”ื•ื ื˜ืขื” ืขื“ ืขื›ืฉื™ื•, ื•ืืคื™ืœื• ืื ื‘ืืžืช ื™ืฉ forEach ืขืœ ืžืฉื”ื• ืฉื—ื•ื–ืจ ืž querySelectorAll, ืขื›ืฉื™ื• ื”ื•ื ืชืงื•ืข ื›ื™ ื”ื•ื ืœื ื™ื•ื“ืข ืžื” ื”ื˜ื™ืคื•ืก ืฉืœ ื›ืœ ืื—ื“ ืžื”ืืœืžื ื˜ื™ื ืฉืฆืจื™ื›ื™ื ืœืขื‘ื•ืจ ืœ Callback Function. ืื ื–ื” ื”ื™ื” querySelectorAll ืฉื”ื•ื ืžื›ื™ืจ ื”ื•ื ื”ื™ื” ื™ื•ื“ืข ืžื” ืฆืจื™ืš ืœืขื‘ื•ืจ ืฉื, ืื‘ืœ ื‘ื’ืœืœ ืฉื–ื• ืคื•ื ืงืฆื™ื” ืื—ืจืช ืฉืืชื ื˜ื•ืขื ื™ื ืฉืžื—ื–ื™ืจื” ืžืขืจืš, ืืชื ืชืฆื˜ืจื›ื• ืœืชืช ืœื˜ื™ื™ืคืกืงืจื™ืคื˜ ื™ื•ืชืจ ืžื™ื“ืข ื›ื“ื™ ืœื‘ื“ื•ืง ืืช ื”ืžืฉืš ื”ืงื•ื“. ## ืขื–ืจื” ื‘ืฉื™ื ื•ื™ ื”ืงื•ื“ ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื™ื›ื•ืœ ืœืขื–ื•ืจ ืœื ื• ืœื”ื–ื™ื– ืงื•ื“ ืžืžืงื•ื ืœืžืงื•ื ื‘ืขื–ืจืช ื›ืžื” ืคื•ื ืงืฆื™ื•ืช ื ื—ืžื“ื•ืช ืฉืœ VS Code: 1. ื›ืคืชื•ืจ Extract To Function ื™ื•ื“ืข ืœืงื—ืช ื›ืžื” ืฉื•ืจื•ืช ืงื•ื“ ื•ืœื”ื•ืฆื™ื ืื•ืชืŸ ืœืคื•ื ืงืฆื™ื” ื ืคืจื“ืช, ื›ืืฉืจ ื›ืœ ื”ืžืฉืชื ื™ื ื”ืคื ื™ืžื™ื™ื ื”ื•ืคื›ื™ื ืœื”ื™ื•ืช ืคืจืžื˜ืจื™ื ืฉืœ ื”ืคื•ื ืงืฆื™ื”. 2. ื›ืคืชื•ืจ Rename Symbol ื™ื•ื“ืข ืœืฉื ื•ืช ืฉื ืฉืœ ืžืฉืชื ื” ืื• ืคื•ื ืงืฆื™ื” ื‘ื›ืœ ื”ืžืงื•ืžื•ืช ื‘ื”ื ืฉื ื–ื” ืžื•ืคื™ืข. 3. ื›ืคืชื•ืจ Show Call Hierarchy ืžืจืื” ืืช ื›ืœ ื”ืžืงื•ืžื•ืช ืฉืงื•ืจืื™ื ืœืคื•ื ืงืฆื™ื” ืžืกื•ื™ืžืช, ื›ื“ื™ ืฉื™ื”ื™ื” ืœื›ื ืงืœ ืœืฉื ื•ืช ืืช ื›ื•ืœื (ืœืžืฉืœ ื›ื“ื™ ืœื”ื•ืกื™ืฃ ืคืจืžื˜ืจ ืœืคื•ื ืงืฆื™ื”). ื ืจืื” ืืช ืฉืœื•ืฉืช ื”ื“ื•ื’ืžืื•ืช. ืชื—ื™ืœื” ืกืžื ื• ื‘ืงื•ื“ ืืช ื”ืฉื•ืจื•ืช:
const headers = document.querySelectorAll('h1,h2,h3,h4,h5,h6');
headers.forEach(h => {
  console.log(h.textContent);
});
ื•ืœื—ืฆื• ื›ืคืชื•ืจ ื™ืžื ื™. ื‘ื—ืจื• Extract To Function In Module Scope ื•ืื– ื”ืงืœื™ื“ื• ืฉื ืขื‘ื•ืจ ื”ืคื•ื ืงืฆื™ื”. ืื ื™ ืื‘ื—ืจ ื‘ืฉื main. ื”ืชื•ืฆืื” ื”ื™ื ืคื•ื ืงืฆื™ื” ื—ื“ืฉื” ื‘ืฉื main ืฉื ื•ืฆืจื” ื‘ืกื•ืฃ ื”ืงื•ื‘ืฅ:
function main() {
  const headers = document.querySelectorAll('h1,h2,h3,h4,h5,h6');
  headers.forEach(h => {
    console.log(h.textContent);
  });
}
ืฉืœื‘ ืฉื ื™ - ื ืกืžืŸ ืืช ืฉืœื•ืฉืช ื”ืฉื•ืจื•ืช ื”ืชื—ืชื•ื ื•ืช ืฉืœ ื”ืคื•ื ืงืฆื™ื” (ื›ืœื•ืžืจ ื‘ืœื™ ื”ืฉื•ืจื” ืฉืžื’ื“ื™ืจื” ืืช ื”ืžืฉืชื ื” headers) ื•ื ืœื—ืฅ ืฉื•ื‘ ืขืœ ื”ื›ืคืชื•ืจ ื”ื™ืžื ื™ ื•ืฉื•ื‘ ื ื‘ื—ืจ Extract To Function In Module Scope. ื”ืคืขื ืื ื™ ื‘ื•ื—ืจ ื‘ืฉื clearHeadersText ื•ืื ื™ ื™ื›ื•ืœ ืœืจืื•ืช ืฉื”ืคื•ื ืงืฆื™ื” ืžืงื‘ืœืช ื›ืงืœื˜ ืžืฉืชื ื” headers ืฉืืžื•ืจ ืœื”ื™ื•ืช ืžืกื•ื’ NodeListOf<Element>. ื›ื›ื” ื”ื™ื ื ืจืื™ืช:
function clearHeadersText(headers: NodeListOf<Element>) {
  headers.forEach(h => {
    console.log(h.textContent);
  });
}
ืžื‘ื—ื™ื ืช VS Code ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ืฉื ื™ ื” Refactorings ื”ื™ื” ืฉื‘ืคืขื ื”ืจืืฉื•ื ื” ื”ืงื•ื“ ื”ืชื™ื—ืก ืœืžืฉืชื ื” ื’ืœื•ื‘ืืœื™, ื•ืœื›ืŸ ืื ื”ื™ื™ืชื™ ืžื•ืฆื™ื ืจืง ืืช ืฉืœื•ืฉืช ื”ืฉื•ืจื•ืช ื”ืื—ืจื•ื ื•ืช ืœืคื•ื ืงืฆื™ื” ื”ื™ื ื”ื™ืชื” ืžืžืฉื™ื›ื” ืœื”ืชื™ื—ืก ืœืื•ืชื• ืžืฉืชื ื” ื’ืœื•ื‘ืืœื™ headers. ื‘ืคืขื ื”ืฉื ื™ื” ื”ืžืฉืชื ื” headers ื”ื™ื” ืžืฉืชื ื” ืคื ื™ืžื™ ืฉืœ ืคื•ื ืงืฆื™ื” main, ื•ืœื›ืŸ ื‘ืฉื‘ื™ืœ ืœื”ื•ืฆื™ื ื”ื—ื•ืฆื” ืืช ืฉืœื•ืฉืช ื”ืฉื•ืจื•ืช ืœืคื•ื ืงืฆื™ื” ื—ื“ืฉื” ืื•ืชื” ืคื•ื ืงืฆื™ื” ื—ื“ืฉื” ื—ื™ื™ื‘ืช ืœืงื‘ืœ ืืช ื”ืขืจืš ืฉืœ headers. ื ืžืฉื™ืš ืœ h ื‘ืชื•ืš ื”ืœื•ืœืื”:
  headers.forEach(h => {
    console.log(h.textContent);
  });
ื›ืคืชื•ืจ ื™ืžื ื™ ืขืœ ื” h ื•ื‘ื—ื™ืจื” ื‘ Rename Symbol ืžืืคืฉืจืช ืœื™ ืœืฉื ื•ืช ืืช ื”ืฉื, ื•ื”ืฉื™ื ื•ื™ ื™ืขื“ื›ืŸ ืืช ื›ืœ ื”ืžืงื•ืžื•ืช ื‘ื”ื ื”ืžืฉืชื ื” ื”ื–ื” ืžื•ืคื™ืข. ืื•ืœื™ ืœื ืžืื•ื“ ืฉื™ืžื•ืฉื™ ื‘ืฉืชื™ ืฉื•ืจื•ืช, ืื‘ืœ ื‘ืคื•ื ืงืฆื™ื•ืช ืืจื•ื›ื•ืช ื™ื•ืชืจ ื–ื” ืœื”ื™ื˜.

ToCode
1 419
# ื™ืชืจื•ื ื•ืช ืฉืœ TypeScript ืœืžืชื›ื ืชื™ JavaScript ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื ื›ืชื‘ื” ื‘ 2010 ื›ืฉื”ืขื•ืœื ืฉืœ JavaScript ื”ื™ื” ืฉื•ื ื” ืžืื•ื“ ื•ื”ืจื‘ื” ื™ื•ืชืจ ืžื‘ื•ืœื’ืŸ ืžืžื” ืฉื”ื•ื ื”ื™ื•ื. ื”ื™ื ื”ื’ื™ืขื” ืขื ืฉืชื™ ื‘ืฉื•ืจื•ืช: ื”ื™ื ื”ื•ืกื™ืคื” ืžืขืจื›ืช ื˜ื™ืคื•ืกื™ื ืœืฉืคื” ื›ื“ื™ ืฉื™ื”ื™ื” ื™ื•ืชืจ ืงืœ ืœื›ืชื•ื‘ ืคืจื•ื™ืงื˜ื™ื ื’ื“ื•ืœื™ื, ื•ื”ื™ื ื”ื•ืกื™ืคื” ืชืžื™ื›ื” ื‘ื™ื›ื•ืœื•ืช "ื—ื“ืฉื•ืช" ืฉืœ ื”ืฉืคื” ืฉื”ืชืงืจื‘ื• ืœืชืงืŸ ืื‘ืœ ืขื“ื™ื™ืŸ ืœื ื”ื™ื• ื‘ืชื•ื›ื• ืื• ื‘ื“ืคื“ืคื ื™ื. ืื ื™ ืžื–ื›ื™ืจ ืฉื‘ 2010 ืฉื•ืง ื”ื“ืคื“ืคื ื™ื ื•ื•ืขื“ื•ืช ื”ืชืงื™ื ื” ื”ื™ื• ื‘ืงื™ืคืื•ืŸ, ื’ื™ืจืกืช JavaScript ืฉืขื‘ื“ื” ื‘ืจื•ื‘ ื”ื“ืคื“ืคื ื™ื ื”ื™ื ES3 ื•ื”ื™ื ื›ื‘ืจ ืœื ื”ืชืื™ืžื” ืœืคืจื•ื™ืงื˜ื™ื ืžื•ื“ืจื ื™ื™ื. ืœื™ืžื™ื JavaScript ื™ืฆืื” ืžื”ืงื™ืคืื•ืŸ ื•ื”ื™ื•ื ื”ืชืงืŸ ืžืชืขื“ื›ืŸ ื•ื’ื ื”ื“ืคื“ืคื ื™ื ืžื•ืกื™ืคื™ื ื™ื›ื•ืœื•ืช ื—ื“ืฉื•ืช ื‘ืฆื•ืจื” ืขืงื‘ื™ืช, ื›ืš ืฉืื™ืŸ ื›ื‘ืจ ื˜ืขื ืœื”ืฉืชืžืฉ ื‘ TS ื›ื“ื™ ืœืงื‘ืœ ื™ื›ื•ืœื•ืช ืืœื”. ื”ื—ื“ืฉื ื•ืช ืฉืœ TS ืื ื›ืŸ ืขื‘ืจื” ืœืžืขืจื›ืช ื”ื˜ื™ืคื•ืกื™ื ืฉืœื”, ื•ืœื›ืœื™ ืคื™ืชื•ื— ืžืขื•ืœื™ื ืฉืืคืฉืจ ืœื‘ื ื•ืช ื‘ื–ื›ื•ืช ืื•ืชื” ืžืขืจื›ืช ื˜ื™ืคื•ืกื™ื. ## ืžื” TypeScript ื ื•ืชืŸ ืœื ื• ื›ืžืคืชื—ื™ JavaScript ื˜ื™ื™ืคืกืงืจื™ืคื˜ ื”ื™ื Superset ืฉืœ JavaScript. ื–ื” ืื•ืžืจ ืฉื›ืœ ืงื•ื‘ืฅ JavaScript ืฉืชื™ืงื—ื• ื”ื•ื ื’ื ืงื•ื‘ืฅ ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืชืงื ื™. ื‘ื ื•ืกืฃ VS Code ืžืฉืชืžืฉ ื‘ื›ืœ ื”ื›ืœื™ื ืฉืœ ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืื•ื˜ื•ืžื˜ื™ืช ื’ื ื‘ืขื‘ื•ื“ื” ืขืœ ืงื‘ืฆื™ js ื•ื’ื ื‘ืขื‘ื•ื“ื” ืขืœ ืงื‘ืฆื™ ts. ืœื›ืŸ ื•ื‘ืžื™ื•ื—ื“ ืื ืืชื ืขื•ื‘ื“ื™ื ื‘ VS Code, ื”ืฉืืœื” ื”ื™ื ืœื ืื ืœื”ืฉืชืžืฉ ื‘ TypeScript, ืืœื ื‘ืื™ื–ื• ืžื™ื“ื”. ื”ืื ืืชื ืžื•ื›ื ื™ื ืœื”ืกืชืคืง ื‘ื‘ื“ื™ืงื•ืช ื•ื‘ื”ืฉืœืžื•ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ VS Code ื•ืœื”ื™ืฉืืจ ืขื ืงื‘ืฆื™ ื” js ืฉืœื›ื? ื”ืื ืืชื ืจื•ืฆื™ื "ืœืขื–ื•ืจ" ืงืฆืช ืœ VS Code ื•ืœื”ื•ืกื™ืฃ ืžื™ื“ืข ืขืœ ื”ื˜ื™ืคื•ืกื™ื ืชื•ืš ื›ื“ื™ ื›ืชื™ื‘ืช ื”ืงื•ื“? ื”ืื ืืชื ืจื•ืฆื™ื ืœื”ื™ืขื–ืจ ื‘ VS Code ื•ืœื”ื•ืกื™ืฃ ื•ื•ืœื™ื“ืฆื™ื•ืช ืขืœ ื”ืงื•ื“, ื›ืš ืฉืชื•ื›ืœื• ืœื”ืฉืชืžืฉ ืจืง ื‘ืงื•ื“ "ื‘ื˜ื•ื—" ื‘ืคืจื•ื™ืงื˜ ืฉืœื›ื? ื”ื“ื‘ืจื™ื ื”ืžืจื›ื–ื™ื™ื ืฉื ืงื‘ืœ ืž TypeScript ื‘ืชื•ืจ ืžืคืชื—ื™ ื•ื•ื‘ ื”ื: 1. ืขื–ืจื” ื‘ื‘ื“ื™ืงืช ื”ืงื•ื“ - ื›ื“ื™ ืœื•ื•ื“ื ืฉืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘ืคื•ื ืงืฆื™ื•ืช ืฉืœื ื• ื•ื‘ืคื•ื ืงืฆื™ื•ืช ืฉืœ ืื—ืจื™ื ื›ืžื• ืฉื”ืชื›ื•ื•ื ื•. 2. ืขื–ืจื” ื‘ืฉื™ื ื•ื™ ื”ืงื•ื“ - ื›ื“ื™ ืœื•ื•ื“ื ืฉ Refactor ืžืกื•ื™ื ืœื ืฉื•ื‘ืจ ืงื•ื“ ื‘ืžืงื•ืžื•ืช ืฉืœื ื—ืฉื‘ื ื• ืขืœื™ื”ื, ื•ื›ื“ื™ ืœืชืงืŸ ืื•ื˜ื•ืžื˜ื™ืช ืืช ืžื” ืฉืืคืฉืจ. 3. ืขื–ืจื” ื‘ื›ืชื™ื‘ืช ื”ืงื•ื“ - ื›ื“ื™ ืœื”ืฆื™ืข ืœื ื• ื”ืฉืœืžื•ืช ืจืœื•ื•ื ื˜ื™ื•ืช ื‘ืžื”ืœืš ื”ื›ืชื™ื‘ื”. ื‘ื•ืื• ื ืจืื” ื“ื•ื’ืžืื•ืช ืœืฉืœื•ืฉืช ื”ืกืขื™ืคื™ื. ## ืขื–ืจื” ื‘ื‘ื“ื™ืงืช ื”ืงื•ื“ ืื ื™ ืžืชื—ื™ืœ ืขื ืคืจื•ื™ืงื˜ TypeScript ื—ื“ืฉ ืฉื™ืฆืจืชื™ ื‘ืืžืฆืขื•ืช vite ืขื ื”ืคืงื•ื“ื”:
$ npm create vite@latest
ื•ื‘ื—ืจืชื™ ื‘ืชืคืจื™ื˜ื™ื Vanilla TypeScript. ืื ื™ ื™ื•ืฆืจ ืงื•ื‘ืฅ ื—ื“ืฉ ื‘ืชื™ืงื™ื™ืช src ื‘ืฉื utils.ts ืขื ื”ืชื•ื›ืŸ ื”ื‘ื:
export function twice(x: number) {
  return x * 2;
}
ืื ื—ื ื• ืจื•ืื™ื ืฉืื ื—ื ื• ืขื•ื‘ื“ื™ื ืขืœ ืงื•ื‘ืฅ TypeScript ืœืคื™ ื”ืกื™ื•ืžืช, ื•ืื ื—ื ื• ืจื•ืื™ื ืฉื”ื•ืกืคืชื™ ืื—ืจื™ ืฉื ื”ืžืฉืชื ื” ื‘ื›ื ื™ืกื” ืœืคื•ื ืงืฆื™ื” ืกื™ืžืŸ ื ืงื•ื“ื•ืชื™ื™ื ื•ืื—ืจื™ื• ืืช ื”ืžื™ืœื” number. ื–ื” ืื•ืžืจ ืฉืื ื™ ืžืชื›ื•ื•ืŸ ืฉื”ืžืฉืชื ื” x ืชืžื™ื“ ื™ืงื‘ืœ ืขืจืš ืžืกืคืจื™. ืฉื•ืžืจ ืืช ื”ืงื•ื‘ืฅ ื•ืžืžืฉื™ืš ืœ main.ts ืฉื›ื‘ืจ ืงื™ื™ื ื‘ืคืจื•ื™ืงื˜. ืฉื ื‘ืฉื•ืจื” 4 ืื ื™ ื›ื•ืชื‘:
alert(twice(10));
ืื ื™ ืจื•ืื” ืฉืžืชื—ืช ืœืžื™ืœื” twice ืžื•ืคื™ืข ืœื™ ืงื• ืื“ื•ื ืฉืื•ืžืจ ืฉ VS Code ืœื ืžื–ื”ื” ืืช ื”ืžื™ืœื”. ื›ืฉืื ื™ ืžืฉืชื”ื” ืขื ื”ืกืžืŸ ืžืขืœ ื”ืžื™ืœื” twice ืื ื™ ืžืงื‘ืœ ืืช ื”ื”ื•ื“ืขื”:
Cannot find name 'twice'.ts(2304)
ืงื•ื“ ื”ืฉื’ื™ืื” 2304 ื™ื›ื•ืœ ืœืขื–ื•ืจ ืœื™ ืื ืืฆื˜ืจืš ืœื—ืคืฉ ื‘ื’ื•ื’ืœ ืงืฆืช ื™ื•ืชืจ ืžื™ื“ืข ืขืœ ืžื” ื‘ื“ื™ื•ืง ืงืจื” ืฉื, ืื‘ืœ ื”ืคืขื ื”ืฉื’ื™ืื” ื“ื™ ืžืกื‘ื™ืจื” ืืช ืขืฆืžื” - ื˜ื™ื™ืคืกืงืจื™ืคื˜ ืœื ืžืฆืœื™ื— ืœืžืฆื•ื ืืช ื”ืฉื twice. ืขื›ืฉื™ื• ืฉื™ืžื• ืืช ื”ืกืžืŸ ืขืœ ื”ืžื™ืœื” ื”ืื“ื•ืžื” ื•ืชื•ื›ืœื• ืœืจืื•ืช ืžื ื•ืจื” ืงื˜ื ื” ืžื•ืคื™ืขื” ื‘ืชื—ื™ืœืช ื”ืฉื•ืจื” ืงืฆืช ืžืขืœ ื”ืžื™ืœื” alert. ื–ืืช ืžื ื•ืจืช ื”ืชื™ืงื•ืŸ ื”ืื•ื˜ื•ืžื˜ื™. ื ืœื—ืฅ ืขืœื™ื” ื•ื™ื™ืคืชื— ืชืคืจื™ื˜ ืขื ื”ืืคืฉืจื•ื™ื•ืช: 1. Add import from utils 2. Add missing function declaration 'twice' ืืคืฉืจื•ืช ืฉื ื™ื” ืœื˜ื™ื™ืœ ื‘ื™ืŸ ื”ืฉื’ื™ืื•ืช ื”ื™ื ืขื ื›ืคืชื•ืจ F8. ืœื—ืฆื• ืขืœื™ื• ื•ื”ืกืžืŸ ืžื™ื“ ื™ืงืคื•ืฅ ืœืžื™ืœื” twice ืขื ื”ื•ื“ืขืช ื”ืฉื’ื™ืื” ืžืชื—ืช ืœืžื™ืœื”. ื ื‘ื—ืจ ื‘ืืคืฉืจื•ืช Add import from utils, ื•ื”ืงื• ื”ืื“ื•ื ื ืขืœื. ืื‘ืœ ืขื›ืฉื™ื• ื‘ื•ืื• ื ื™ืงื— ืืช ื–ื” ืขื•ื“ ืฆืขื“ ืงื“ื™ืžื” - ืื ื™ ื™ื•ื“ืข ืฉื”ืคื•ื ืงืฆื™ื” ืžืฆืคื” ืœืงื‘ืœ ืžืกืคืจ, ื•ื’ื typescript ื™ื•ื“ืข ืืช ื–ื”. ื ืฉื ื” ืืช ื”ืงืจื™ืื” ืœ:
alert(twice("yay"));
ื•ืฉื•ื‘ ืงื• ืื“ื•ื, ื”ืคืขื ืžืชื—ืช ืœืžื™ืœื” yay. ื”ื”ื•ื“ืขื” ื”ืคืขื:
Argument of type 'string' is not assignable to parameter of type 'number'.ts(2345)
ืฉื•ื‘ ื”ื•ื“ืขื” ืฉืžืกื‘ื™ืจื” ืืช ืขืฆืžื”, ื‘ืžื™ื•ื—ื“ ื›ืฉืื ื—ื ื• ื™ื•ื“ืขื™ื ืฉืฆืจื™ื›ื” ืœื”ื•ืคื™ืข ืฉื ืฉื’ื™ืื”. ื”ืคืขื ืœื˜ื™ื™ืคืกืงืจื™ืคื˜ ื›ื‘ืจ ืื™ืŸ ืžื•ืฉื’ ืื™ืš ืœืขื–ื•ืจ ืœื™ ืœืชืงืŸ ืืช ื–ื”, ื›ื™ ื”ืคื•ื ืงืฆื™ื” ื‘ืืžืช ืฆืจื™ื›ื” ืœืงื‘ืœ ืžืกืคืจ ื•ืื ื™ ื”ืคืขืœืชื™ ืื•ืชื” ืœื’ืžืจื™ ืœื ื ื›ื•ืŸ. ื ืžื—ืง ืืช ืฉื•ืจืช ื” alert ื•ืขื›ืฉื™ื• ื” import ื”ื•ืคืš ืœืืคื•ืจ ื‘ื”ื™ืจ ืขื ื”ื•ื“ืขืช ื”ืื–ื”ืจื”:
'twice' is declared but its value is never read.ts(6133)
ื”ืงื• ื”ื•ื ืฆื”ื•ื‘ ื›ื“ื™ ืœืกืžืŸ ืœื ื• ืฉื–ื” ืœื ืกื•ืฃ ื”ืขื•ืœื ืื ื ื™ืฉืืจ ืขื ื”ืงื•ื“ ื›ืžื• ืฉื”ื•ื, ืื‘ืœ ื›ืŸ ื™ืฉ ืกื™ื›ื•ื™ ืฉื™ืฉ ืคื” ืžืฉื”ื• ืœื ื‘ืกื“ืจ. ืื• ืฉืœื ื”ื™ื™ืช ืฆืจื™ืš ืœืขืฉื•ืช import, ืื• ืฉื‘ืชื•ืš ื”ืงื•ื“ ืฉื›ื—ืช ืœื”ืคืขื™ืœ ืืช ื”ืคื•ื ืงืฆื™ื”.