ืคืœื˜ืคื•ืจืžืช JavaScript Node.js 22.0.0 ื–ืžื™ื ื”

ืฉื•ื—ืจืจ Node.js 22.0, ืคืœื˜ืคื•ืจืžื” ืœื”ืคืขืœืช ื™ื™ืฉื•ืžื™ ืจืฉืช ื‘-JavaScript. Node.js 22.0 ืžืกื•ื•ื’ ื›ืกื ื™ืฃ ืชืžื™ื›ื” ืœื˜ื•ื•ื— ืืจื•ืš, ืืš ืžืขืžื“ ื–ื” ื™ื•ืงืฆื” ืจืง ื‘ืื•ืงื˜ื•ื‘ืจ, ืœืื—ืจ ื”ืชื™ื™ืฆื‘ื•ืช. Node.js 22.x ื™ื”ื™ื” ื ืชืžืš ืขื“ 30 ื‘ืืคืจื™ืœ, 2027. ืชื—ื–ื•ืงื” ืฉืœ ืกื ื™ืฃ ื”-LTS ื”ืงื•ื“ื ืฉืœ Node.js 20.x ืชื™ืžืฉืš ืขื“ ืืคืจื™ืœ 2026, ื•ื‘ืฉื ื” ืฉืœืคื ื™ ืกื ื™ืฃ LTS 18.x ืขื“ ืืคืจื™ืœ 2025. ืกื ื™ืฃ ื”-Staging ืฉืœ Node.js 21.x ื™ื•ืคืกืง ื‘-1 ื‘ื™ื•ื ื™ 2024.

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

  • ืžื ื•ืข ื”-V8 ืขื•ื“ื›ืŸ ืœื’ืจืกื” 12.4, ื‘ืฉื™ืžื•ืฉ ื‘-Chromium 124. ื‘ื™ืŸ ื”ืฉื™ื ื•ื™ื™ื ื‘ื”ืฉื•ื•ืื” ืœืขื ืฃ Node.js 21, ืฉื”ืฉืชืžืฉ ื‘ืžื ื•ืข V8 11.8), ืžืฆื•ื™ืŸ:
    • ืชืžื™ื›ื” ื‘ืชื•ืกืฃ WasmGC, ืืฉืจ ืžืคืฉื˜ ืืช ื”ืขื‘ืจื” ืฉืœ ืชื•ื›ื ื™ื•ืช ื”ื›ืชื•ื‘ื•ืช ื‘ืฉืคื•ืช ืชื›ื ื•ืช ื”ืžืฉืชืžืฉื•ืช ื‘ืืกืคืŸ ืืฉืคื” (Kotlin, PHP, Java ื•ื›ื•') ืœ-WebAssembly. WasmGC ืžื•ืกื™ืคื” ืกื•ื’ื™ื ื—ื“ืฉื™ื ืฉืœ ืžื‘ื ื™ื ื•ืžืขืจื›ื™ื ืฉื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ ืœื ืœื™ื ื™ืืจื™ืช.
    • ืชืžื™ื›ื” ื‘ืฉื™ื˜ืช Array.fromAsync() ื”ืžื—ื–ื™ืจื” ื‘ืื•ืคืŸ ืืกื™ื ื›ืจื•ื ื™ ืžื•ืคืข ื—ื“ืฉ ืฉืœ ืื•ื‘ื™ื™ืงื˜ Array ืฉื”ื•ืขืชืง ืžืื•ื‘ื™ื™ืงื˜ ื—ื–ืจืชื™ ื“ืžื•ื™ ืžืขืจืš, ื ื™ืชืŸ ืœื—ื–ื•ืจ ืขืœื™ื• ืื• ืœื-ืกื™ื ื›ืจื•ื ื™.
    • ืชืžื™ื›ื” ื‘ืฉื™ื˜ื•ืช ืื™ื˜ืจื˜ื•ืจ ื›ื’ื•ืŸ .map, .filter, .find, .take, .drop, .forEach ื•-.reduce.
    • ืชืžื™ื›ื” ื‘ืื•ื‘ื™ื™ืงื˜ ืกื˜ ืฉืžื’ื“ื™ืจ ืื•ืกืฃ ืฉืœ ืขืจื›ื™ื ื•ืžืฆื™ืข ืฉื™ื˜ื•ืช ื”ืžื™ื™ืฉืžื•ืช ืคืขื•ืœื•ืช ืกื˜ ื ืคื•ืฆื•ืช, ื›ื’ื•ืŸ ืฆื•ืžืช, ืื™ื—ื•ื“, ื”ื‘ื“ืœ ื•ื—ื™ื‘ื•ืจ.
  • ืžื”ื“ืจ JIT ืœืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืฉืœ Maglev ืžื•ืคืขืœ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืฉืžื˜ืจืชื• ืœื™ืฆื•ืจ ื‘ืžื”ื™ืจื•ืช ืงื•ื“ ืžื›ื•ื ื” ื‘ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ืขื‘ื•ืจ ืงื•ื“ JavaScript ื‘ืฉื™ืžื•ืฉ ืจื‘. ื”ืคืขืœืช Maglev ื™ื›ื•ืœื” ืœื”ืื™ืฅ ืžืฉืžืขื•ืชื™ืช ื™ื™ืฉื•ืžื™ CLI ืงืฆืจื™ ืžื•ืขื“ ืฉืื™ื ื ืžื‘ืฆืขื™ื ืคืขื•ืœื•ืช ืืจื•ื›ื•ืช ื˜ื•ื•ื—, ืœืžืฉืœ, ื”ื–ืžืŸ ืœื”ืฉืœืžืช ืžื‘ื—ืŸ Jetstrea ืžืฆื˜ืžืฆื ื‘-7.5%, ื•ืžื‘ื—ืŸ Speedometer ื‘-5%.
  • ื”ืขื‘ื•ื“ื” ืขื ื–ืจืžื™ื ื”ื•ืืฆื” ืขืœ ื™ื“ื™ ื”ื’ื“ืœืช ื”ืขืจืš ืฉืœ ืืคืฉืจื•ืช ื”-highWaterMark ืž-16 ืงื™ืœื•-ื‘ื™ื™ื˜ ืœ-65 ืงื™ืœื•-ื‘ื™ื™ื˜ (ืžื’ื“ื™ืจ ืืช ื”ื’ื‘ื•ืœ ืฉืขื“ ืืœื™ื• ื”ื”ืงืœื˜ื” ืžืื•ื—ืกื ืช). ื”ืฉื™ื ื•ื™ ืžื‘ื™ื ืœืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ืžื•ื’ื‘ืจืช, ื›ืš ืฉื™ื™ืฉื•ืžื™ื ื”ืžื™ื•ืขื“ื™ื ืœืจื•ืฅ ืขืœ ื–ื™ื›ืจื•ืŸ RAM ืžื•ื’ื‘ืœ ืขืฉื•ื™ื™ื ืœื”ืฆื˜ืจืš ืœื—ื–ื•ืจ ืœืขืจืš ื”ื™ืฉืŸ ื‘ืืžืฆืขื•ืช ืงืจื™ืื” ืœ-setDefaultHighWaterMark().
  • ื‘ื™ืฆื•ืขื™ื ืžืฉื•ืคืจื™ื ืฉืœ ืžืžืฉืงื™ API ืฉืœ ื”-fetch() ื•-test runner ืขืœ ื™ื“ื™ ื”ืคื™ื›ืช ื”ืžื•ืคืข ืฉืœ AbortSignal ืœื™ืขื™ืœื” ื™ื•ืชืจ. ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ืžืžืฉืงื™ API ื”ืงืฉื•ืจื™ื ืœืขื‘ื•ื“ื” ืกื™ื ื›ืจื•ื ื™ืช ืขื ืžืขืจื›ื•ืช ืงื‘ืฆื™ื ืฉื•ืคืจื•.
  • ืกื•ืคืงื” ืชื›ื•ื ื” ื ื™ืกื™ื•ื ื™ืช ืœืฉื™ืžื•ืฉ ื‘ืงืจื™ืื” "require()" ืœื˜ืขื™ื ืช ืžื•ื“ื•ืœื™ JavaScript ESM (ECMAScript Modules) ื‘ืžืฆื‘ ืกื™ื ื›ืจื•ื ื™. ืžื•ื“ื•ืœื™ ESM ืžืฉืžืฉื™ื ื‘ื“ืคื“ืคื ื™ื ื•ืžื—ืœื™ืคื™ื ืžื•ื“ื•ืœื™ CommonJS ืกืคืฆื™ืคื™ื™ื ืœ-Node.js. ื›ื“ื™ ืœื˜ืขื•ืŸ ื‘ืืžืฆืขื•ืช "require()", ืžื•ื“ื•ืœ ESM ื—ื™ื™ื‘ ืœื”ืชื‘ืฆืข ื‘ืžืฆื‘ ืกื™ื ื›ืจื•ื ื™ (ืœืœื ื”ืžืชื ื” ื‘ืจืžื” ื”ืขืœื™ื•ื ื”). ื”ืชืžื™ื›ื” ืžื•ืคืขืœืช ื‘ืืžืฆืขื•ืช ื”ื“ื’ืœ "--experimental-require-module".
  • ื ื•ืกืคื” ื™ื›ื•ืœืช ื ื™ืกื™ื•ื ื™ืช ืœื”ืจื™ืฅ ืกืงืจื™ืคื˜ื™ื ืฉื”ื•ื’ื“ืจื• ื‘ืงื•ื‘ืฅ package.json ื‘ืืžืฆืขื•ืช ื”ืคืงื•ื“ื” "--run" "
  • ื”ืคืงื•ื“ื” "node โ€“watch" ื”ื•ืขื‘ืจื” ืœืงื˜ื’ื•ืจื™ื” ื”ื™ืฆื™ื‘ื” ืขื ื”ื˜ืžืขืช ืžืฆื‘ ืฉืขื•ืŸ ื”ืžื‘ื˜ื™ื— ืฉื”ืชื”ืœื™ืš ื™ื•ืคืขืœ ืžื—ื“ืฉ ื›ืืฉืจ ื”ืงื•ื‘ืฅ ื”ืžื™ื•ื‘ื ืžืฉืชื ื” (ืœื“ื•ื’ืžื”, ืื "node -watch index.js" ืžื•ืคืขืœ, ื”ืชื”ืœื™ืš ื™ื•ืคืขืœ ืžื—ื“ืฉ ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื›ืืฉืจ index.js ืžืฉืชื ื”).
  • ื”ื™ื™ืฉื•ื ื”ืžืงื•ืจื™ ืฉืœ ื”-API ืฉืœ WebSocket ื™ื•ืฆื‘, ืžื” ืฉืžืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘-WebSocket ื‘ืžืฆื‘ ืœืงื•ื— ืžื‘ืœื™ ืœื”ืชืงื™ืŸ ืชืœื•ืช ื ื•ืกืคืช.
  • ื ื•ืกืคื” ืชืžื™ื›ื” ื—ืœืงื™ืช ืขื‘ื•ืจ Navigator API.
  • ื”-API ืฉืœ Webstreams ื”ื•ืกื™ืฃ ืชืžื™ื›ื” ื‘ืคื•ืจืžื˜ ื”ื“ื—ื™ืกื” ืฉืœ deflation-raw.
  • ื ื•ืกืคื• ืคื•ื ืงืฆื™ื•ืช glob ื•- globSync ืœ-node:fsmodule ืœื”ืชืืžืช ื“ืคื•ืกื™ื ืฉืœ ื ืชื™ื‘ื™ ืงื‘ืฆื™ื.
  • ื˜ื™ืคื•ืœ ืžืฉื•ืคืจ ื‘ืขืจื™ืžื•ืช IPv6 ืฉื”ื•ื’ื“ืจื• ื‘ืฆื•ืจื” ืฉื’ื•ื™ื”. ื”ื˜ืžื™ืข ืืœื’ื•ืจื™ืชื Happy Eyeballs ืœื”ื—ื–ืจื” ืžื”ื™ืจื” ื‘ืžืงืจื” ืฉืœ ื‘ืขื™ื•ืช ื‘ืชืคืขื•ืœ IPv6.
  • ืžืžืฉืง ื”-API ืฉืœ util ื”ื•ืฆื ืžืฉื™ืžื•ืฉ.
  • ื’ืจืกืื•ืช ืชืœื•ืช ืžืขื•ื“ื›ื ื•ืช: npm 10.5.1, libuv 1.48.0, simdutf 5.2.3, c-ares 1.28.1, zlib 1.3.0.1-motley-24c07df, simdjson to 3.8.0, ada 2.7.7 ื•-undici. .

ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืคืœื˜ืคื•ืจืžืช 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 ืžื•ืกืชืจืช ืžื”ืžืคืชื— ื•ื“ื•ืžื” ืœืขื™ื‘ื•ื“ ืื™ืจื•ืขื™ื ื‘ืืคืœื™ืงืฆื™ื™ืช ืื™ื ื˜ืจื ื˜ ืคื•ืขืœ ื‘ื“ืคื“ืคืŸ.

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

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