ืคืœื˜ืคื•ืจืžืช JavaScript ื‘ืฆื“ ื”ืฉืจืช Node.js 18.0 ื–ืžื™ื ื”

ืฉื•ื—ืจืจ Node.js 18.0, ืคืœื˜ืคื•ืจืžื” ืœื”ืคืขืœืช ื™ื™ืฉื•ืžื™ ืจืฉืช ื‘-JavaScript. Node.js 18.0 ืžืกื•ื•ื’ ื›ืกื ื™ืฃ ืชืžื™ื›ื” ืœื˜ื•ื•ื— ืืจื•ืš, ืืš ืžืขืžื“ ื–ื” ื™ื•ืงืฆื” ืจืง ื‘ืื•ืงื˜ื•ื‘ืจ, ืœืื—ืจ ื”ืชื™ื™ืฆื‘ื•ืช. Node.js 18.x ื™ื”ื™ื” ื ืชืžืš ืขื“ ืืคืจื™ืœ 2025. ืชื—ื–ื•ืงื” ืฉืœ ืกื ื™ืฃ ื”-LTS ื”ืงื•ื“ื ืฉืœ Node.js 16.x ืชื™ืžืฉืš ืขื“ ืืคืจื™ืœ 2024, ื•ื‘ืฉื ื” ืฉืœืคื ื™ ืกื ื™ืฃ LTS 14.x ืขื“ ืืคืจื™ืœ 2023. ืกื ื™ืฃ 12.x LTS ื™ื•ืคืกืง ื‘-30 ื‘ืืคืจื™ืœ, ื•ืกื ื™ืฃ ื”-Node.js 17.x ืกื˜aging ื™ื•ืคืกืง ื‘-1 ื‘ื™ื•ื ื™.

ืฉื™ืคื•ืจื™ื ืขื™ืงืจื™ื™ื:

  • ืžื ื•ืข ื”-V8 ืขื•ื“ื›ืŸ ืœื’ืจืกื” 10.1, ื”ืžืฉืžืฉืช ื‘-Chromium 101. ื‘ื”ืฉื•ื•ืื” ืœื’ืจืกื” 17.9.0 ืฉืœ Node.js, ืงื™ื™ืžืช ื›ืขืช ืชืžื™ื›ื” ื‘ืชื›ื•ื ื•ืช ื›ื’ื•ืŸ ืฉื™ื˜ื•ืช findLast ื•-findLastIndex ืœืžืฆื™ืืช ืืœืžื ื˜ื™ื ื‘ื™ื—ืก ืœืกื•ืฃ ืฉืœ ืžืขืจืš, ื•ื”ืคื•ื ืงืฆื™ื” Intl.supportedValuesOf. API ืžืฉื•ืคืจ ืฉืœ Intl.Locale. ื”ืืชื—ื•ืœ ืฉืœ ืฉื“ื•ืช ื›ื™ืชื” ื•ืฉื™ื˜ื•ืช ืคืจื˜ื™ื•ืช ื”ื•ืืฅ.
  • ืžืžืฉืง ื”-API ืฉืœ fetch() ื”ื ื™ืกื™ื•ื ื™ ืžื•ืคืขืœ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืžื™ื•ืขื“ ืœื˜ืขื™ื ืช ืžืฉืื‘ื™ื ื“ืจืš ื”ืจืฉืช. ื”ื”ื˜ืžืขื” ืžื‘ื•ืกืกืช ืขืœ ืงื•ื“ ืžืœืงื•ื— HTTP/1.1 undici ื•ืงืจื•ื‘ ื›ื›ืœ ื”ืืคืฉืจ ืœ-API ื”ื“ื•ืžื” ื”ืžืกื•ืคืง ื‘ื“ืคื“ืคื ื™ื. ื–ื” ื›ื•ืœืœ ืชืžื™ื›ื” ื‘ืžืžืฉืงื™ FormData, Headers, Request ื•-Response ืขื‘ื•ืจ ืžื ื™ืคื•ืœืฆื™ื” ืฉืœ ื‘ืงืฉื•ืช HTTP ื•ื›ื•ืชืจื•ืช ืชื’ื•ื‘ื”. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(ื ืชื•ื ื™ื); }
  • ื ื•ืกืคื” ื™ื™ืฉื•ื ื ื™ืกื™ื•ื ื™ ืฉืœ ื”-Web Streams API, ื”ืžืกืคืง ื’ื™ืฉื” ืœื–ืจืžื™ ื ืชื•ื ื™ื ืฉื”ืชืงื‘ืœื• ื“ืจืš ื”ืจืฉืช. ื”-API ืžืืคืฉืจ ืœื”ื•ืกื™ืฃ ืžื˜ืคืœื™ื ืžืฉืœืš ืฉื™ืขื‘ื“ื• ืขื ื ืชื•ื ื™ื ื›ืืฉืจ ื”ืžื™ื“ืข ืžื’ื™ืข ืœืจืฉืช, ืžื‘ืœื™ ืœื—ื›ื•ืช ืœื”ื•ืจื“ืช ื”ืงื•ื‘ืฅ ื›ื•ืœื•. ืื•ื‘ื™ื™ืงื˜ื™ื ื”ื–ืžื™ื ื™ื ื›ืขืช ื‘-Node.js ื›ื•ืœืœื™ื ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream ื•-DecompressionStream.
  • ืžืžืฉืง ื”-API ืฉืœ Blob ื”ื•ืขื‘ืจ ืœื™ืฆื™ื‘, ื•ืžืืคืฉืจ ืœืš ืœื›ืœื•ืœ ื ืชื•ื ื™ื ื’ื•ืœืžื™ื™ื ื‘ืœืชื™ ื ื™ืชื ื™ื ืœืฉื™ื ื•ื™ ืœืฉื™ืžื•ืฉ ื‘ื˜ื•ื— ื‘ืฉืจืฉื•ืจื™ ืขื•ื‘ื“ื™ื ืฉื•ื ื™ื.
  • ื”-API ืฉืœ BroadcastChannel ื ืขืฉื” ื™ืฆื™ื‘, ื•ืžืืคืฉืจ ืœืš ืœืืจื’ืŸ ืืช ื—ื™ืœื•ืคื™ ื”ื”ื•ื“ืขื•ืช ื‘ืžืฆื‘ ืืกื™ื ื›ืจื•ื ื™ ื‘ืคื•ืจืžื˜ "ืฉื•ืœื— ืื—ื“ - ื ืžืขื ื™ื ืจื‘ื™ื".
  • ื ื•ืกืฃ ืžื•ื“ื•ืœ ื ื™ืกื™ื•ื ื™ node:test ืœื™ืฆื™ืจื” ื•ื”ืจืฆื” ืฉืœ ื‘ื“ื™ืงื•ืช ื‘-JavaScript ื”ืžื—ื–ื™ืจื•ืช ืชื•ืฆืื•ืช ื‘ืคื•ืจืžื˜ TAP (Test Anything Protocol).
  • ื”ื“ื•ืจ ืฉืœ ืžื›ืœื•ืœื™ื ืžื•ื›ื ื™ื ืขื‘ื•ืจ Red Hat Enterprise Linux (RHEL) 8 ื•ื”ืคืฆื•ืช ืื—ืจื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ Glibc 2.28+, ื›ื•ืœืœ Debian 10 ื•-Ubuntu 20.04, ื›ืžื• ื’ื ืขื‘ื•ืจ macOS 10.15+ ืžืกื•ืคืง. ืขืงื‘ ื‘ืขื™ื•ืช ื‘ื‘ื ื™ื™ืช ืžื ื•ืข V8, ื”ื•ืคืกืงื” ื–ืžื ื™ืช ื™ืฆื™ืจืช ื’ื™ืจืกืช 32 ืกื™ื‘ื™ื•ืช ืขื‘ื•ืจ Windows.
  • ืกื™ืคืงื” ืืคืฉืจื•ืช ื ื™ืกื™ื•ื ื™ืช ืœื‘ื ื•ืช ืงื•ื‘ืฅ ื”ืคืขืœื” ืฉืœ Node.js ืขื ืจื›ื™ื‘ื™ื ืฉื ื‘ื—ืจื• ืขืœ ื™ื“ื™ ื”ืžืฉืชืžืฉ ืฉืื•ืชื—ืœ ื‘ืขืช ื”ื”ืคืขืœื”. ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืืช ืจื›ื™ื‘ื™ ื”ื”ืชื—ืœื”, ื”ืืคืฉืจื•ืช "--node-snapshot-main" ื ื•ืกืคื” ืœืกืงืจื™ืคื˜ ื”-configure build, ืœื“ื•ื’ืžื”, "./configure โ€”node-snapshot-main=marked.js; ืฆื•ืžืช ืฉื"

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืคืœื˜ืคื•ืจืžืช Node.js ื”ืŸ ืœืชื—ื–ื•ืงืช ืฉืจืชื™ื ืฉืœ ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ื•ื”ืŸ ืœื™ืฆื™ืจืช ืชื•ื›ื ื™ื•ืช ืจืฉืช ืจื’ื™ืœื•ืช ืฉืœ ืœืงื•ื— ื•ืฉืจืช. ื›ื“ื™ ืœื”ืจื—ื™ื‘ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ืืคืœื™ืงืฆื™ื•ืช ืขื‘ื•ืจ Node.js, ื”ื•ื›ืŸ ืื•ืกืฃ ื’ื“ื•ืœ ืฉืœ ืžื•ื“ื•ืœื™ื, ื‘ื”ื ื ื™ืชืŸ ืœืžืฆื•ื ืžื•ื“ื•ืœื™ื ืขื ื™ื™ืฉื•ื ืฉืœ HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 ืฉืจืชื™ ื•ืœืงื•ื—ื•ืช, ืžื•ื“ื•ืœื™ื ืœืื™ื ื˜ื’ืจืฆื™ื” ืขื ืžืกื’ืจื•ืช ืื™ื ื˜ืจื ื˜ ืฉื•ื ื•ืช, ืžื˜ืคืœื™ WebSocket ื•-Ajax, ืžื—ื‘ืจื™ DBMS (MySQL, PostgreSQL, SQLite, MongoDB), ืžื ื•ืขื™ ืชื‘ื ื™ื•ืช, ืžื ื•ืขื™ CSS, ื”ื˜ืžืขื•ืช ืฉืœ ืืœื’ื•ืจื™ืชืžื™ ืงืจื™ืคื˜ื• ื•ืžืขืจื›ื•ืช ื”ืจืฉืื” (OAuth), ืžื ืชื—ื™ XML.

ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืขื™ื‘ื•ื“ ืฉืœ ืžืกืคืจ ืจื‘ ืฉืœ ื‘ืงืฉื•ืช ืžืงื‘ื™ืœื•ืช, Node.js ืžืฉืชืžืฉ ื‘ืžื•ื“ืœ ื‘ื™ืฆื•ืข ืงื•ื“ ืืกื™ื ื›ืจื•ื ื™ ื”ืžื‘ื•ืกืก ืขืœ ื˜ื™ืคื•ืœ ื‘ืื™ืจื•ืขื™ื ืœื ื—ื•ืกืžื™ื ื•ื”ื’ื“ืจื” ืฉืœ ืžื˜ืคืœื™ื ื‘ื”ืชืงืฉืจื•ืช ื—ื•ื–ืจืช. ืฉื™ื˜ื•ืช ื ืชืžื›ื•ืช ืœืจื™ื‘ื•ื™ ื—ื™ื‘ื•ืจื™ื ื”ืŸ epoll, kqueue, /dev/poll ื•- select. ืขื‘ื•ืจ ืจื™ื‘ื•ื™ ื—ื™ื‘ื•ืจื™ื, ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘ืกืคืจื™ื™ืช libuv, ืฉื”ื™ื ืชื•ืกืฃ ืขื‘ื•ืจ libev ื‘ืžืขืจื›ื•ืช Unix ื•-IOCP ื‘-Windows. ืกืคืจื™ื™ืช libeio ืžืฉืžืฉืช ืœื™ืฆื™ืจืช ืžืื’ืจ ืฉืจืฉื•ืจื™ื, ื•-c-ares ืžืฉื•ืœื‘ืช ืœื‘ื™ืฆื•ืข ืฉืื™ืœืชื•ืช DNS ื‘ืžืฆื‘ ืœื ื—ื•ืกื. ื›ืœ ืงืจื™ืื•ืช ื”ืžืขืจื›ืช ืฉื’ื•ืจืžื•ืช ืœื—ืกื™ืžื” ืžื‘ื•ืฆืขื•ืช ื‘ืชื•ืš ืžืื’ืจ ื”ื—ื•ื˜ื™ื ื•ืœืื—ืจ ืžื›ืŸ, ื›ืžื• ืžื˜ืคืœื™ ืื•ืชื•ืช, ืžืขื‘ื™ืจื™ื ืืช ืชื•ืฆืืช ื”ืขื‘ื•ื“ื” ืฉืœื”ื ื‘ื—ื–ืจื” ื“ืจืš ืฆื™ื ื•ืจ ืœืœื ืฉื (ืฆื™ื ื•ืจ). ื‘ื™ืฆื•ืข ืงื•ื“ JavaScript ืžืกื•ืคืง ื‘ืืžืฆืขื•ืช ืžื ื•ืข V8 ืฉืคื•ืชื— ืขืœ ื™ื“ื™ ื’ื•ื’ืœ (ื‘ื ื•ืกืฃ, ืžื™ืงืจื•ืกื•ืคื˜ ืžืคืชื—ืช ื’ืจืกื” ืฉืœ Node.js ืขื ืžื ื•ืข Chakra-Core).

ื‘ื‘ืกื™ืกื•, Node.js ื“ื•ืžื” ืœ-Perl AnyEvent, Ruby Event Machine, Python Twisted ื•ื”ื˜ืžืขืช ืื™ืจื•ืขื™ Tcl, ืืš ืœื•ืœืืช ื”ืื™ืจื•ืขื™ื ื‘-Node.js ืžื•ืกืชืจืช ืžื”ืžืคืชื— ื•ื“ื•ืžื” ืœื˜ื™ืคื•ืœ ื‘ืื™ืจื•ืขื™ื ื‘ืืคืœื™ืงืฆื™ื™ืช ืื™ื ื˜ืจื ื˜ ื”ืคื•ืขืœืช ื‘ื“ืคื“ืคืŸ. ื‘ืขืช ื›ืชื™ื‘ืช ื™ื™ืฉื•ืžื™ื ืขื‘ื•ืจ node.js, ืขืœื™ืš ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ืคืจื˜ื™ื ื”ืกืคืฆื™ืคื™ื™ื ืฉืœ ืชื›ื ื•ืช ืžื•ื ื—ื” ืื™ืจื•ืขื™ื, ืœืžืฉืœ, ื‘ืžืงื•ื ืœืขืฉื•ืช "var result = db.query("select..");" ืขื ื”ืžืชื ื” ืœืกื™ื•ื ื”ืขื‘ื•ื“ื” ื•ืขื™ื‘ื•ื“ ื”ืชื•ืฆืื•ืช ืฉืœืื—ืจ ืžื›ืŸ, Node.js ืžืฉืชืžืฉ ื‘ืขืงืจื•ืŸ ืฉืœ ื‘ื™ืฆื•ืข ืืกื™ื ื›ืจื•ื ื™, ื›ืœื•ืžืจ. ื”ืงื•ื“ ื”ื•ืคืš ืœ-"db.query("select..", function (result) {result processing});", ืฉื‘ื• ื”ืฉืœื™ื˜ื” ืชืขื‘ื•ืจ ืžื™ื™ื“ื™ืช ืœืงื•ื“ ื ื•ืกืฃ, ื•ืชื•ืฆืืช ื”ืฉืื™ืœืชื” ืชืขื•ื‘ื“ ืขื ื”ื’ืขืช ื”ื ืชื•ื ื™ื.

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”