Mercurial > hg > nginx-site
view xml/ru/docs/njs/compatibility.xml @ 2556:c81b1fadbcf3
Updated hello_world example in njs.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Fri, 19 Jun 2020 12:48:01 +0100 |
parents | 8ad2ea80e0c2 |
children | 45cb60b3b7b2 |
line wrap: on
line source
<?xml version="1.0"?> <!-- Copyright (C) Nginx, Inc. --> <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> <article name="Совместимость" link="/ru/docs/njs/compatibility.html" lang="ru" rev="23" toc="no"> <section> <para> njs совместим с <link url="http://www.ecma-international.org/ecma-262/5.1/">ECMAScript 5.1</link> (строгий режим) c некоторыми расширениями <link url="http://www.ecma-international.org/ecma-262/6.0/">ECMAScript 6</link> и позже. Совместимость находится в стадии развития. </para> </section> <section id="supported" name="Готовая функциональность"> <para> <list type="bullet"> <listitem> Логические значения, числа, строки, объекты, массивы, функции, конструкторы функций (<link doc="changes.xml" id="njs0.3.6">0.3.6</link>) и регулярные выражения </listitem> <listitem> ES5.1 операторы, ES7 операторы возведения в степень </listitem> <listitem> ES5.1 инструкции: <literal>break</literal>, <literal>catch</literal>, <literal>continue</literal>, <literal>do while</literal>, <literal>else</literal>, <literal>finally</literal>, <literal>for</literal>, <literal>for in</literal>, <literal>if</literal>, <literal>return</literal>, <literal>switch</literal>, <literal>throw</literal>, <literal>try</literal>, <literal>var</literal>, <literal>while</literal>, инструкции меток (labels) (<link doc="changes.xml" id="njs0.2.8">0.2.8</link>) </listitem> <listitem> Свойства <literal>Math</literal>: <list type="bullet"> <listitem> ES6: <literal>E</literal>, <literal>LN10</literal>, <literal>LN2</literal>, <literal>LOG10E</literal>, <literal>LOG2E</literal>, <literal>PI</literal>, <literal>SQRT1_2</literal>, <literal>SQRT2</literal> </listitem> </list> </listitem> <listitem> Методы <literal>Math</literal>: <list type="bullet"> <listitem> ES6: <literal>abs</literal>, <literal>acos</literal>, <literal>acosh</literal>, <literal>asin</literal>, <literal>asinh</literal>, <literal>atan</literal>, <literal>atan2</literal>, <literal>atanh</literal>, <literal>cbrt</literal>, <literal>ceil</literal>, <literal>clz32</literal>, <literal>cos</literal>, <literal>cosh</literal>, <literal>exp</literal>, <literal>expm1</literal>, <literal>floor</literal>, <literal>fround</literal>, <literal>hypot</literal>, <literal>imul</literal>, <literal>log</literal>, <literal>log10</literal>, <literal>log1p</literal>, <literal>log2</literal>, <literal>max</literal>, <literal>min</literal>, <literal>pow</literal>, <literal>random</literal>, <literal>round</literal>, <literal>sign</literal>, <literal>sin</literal>, <literal>sinh</literal>, <literal>sqrt</literal>, <literal>tan</literal>, <literal>tanh</literal>, <literal>trunc</literal> </listitem> </list> </listitem> <listitem> Свойства <literal>Number</literal>: <list type="bullet"> <listitem> ES6: <literal>EPSILON</literal>, <literal>MAX_SAFE_INTEGER</literal>, <literal>MAX_VALUE</literal>, <literal>MIN_SAFE_INTEGER</literal>, <literal>MIN_VALUE</literal>, <literal>NEGATIVE_INFINITY</literal>, <literal>NaN</literal>, <literal>POSITIVE_INFINITY</literal> </listitem> </list> </listitem> <listitem> Методы <literal>Number</literal>: <list type="bullet"> <listitem> ES6: <literal>isFinite</literal>, <literal>isInteger</literal>, <literal>isNaN</literal>, <literal>isSafeInteger</literal>, <literal>parseFloat</literal>, <literal>parseInt</literal> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>Number</literal>: <list type="bullet"> <listitem> ES6: <literal>toExponential</literal> (<link doc="changes.xml" id="njs0.3.6">0.3.6</link>), <literal>toFixed</literal> (<link doc="changes.xml" id="njs0.3.6">0.3.6</link>), <literal>toPrecision</literal> (<link doc="changes.xml" id="njs0.3.6">0.3.6</link>) </listitem> </list> </listitem> <listitem> Методы <literal>String</literal>: <list type="bullet"> <listitem> ES5.1: <link doc="reference.xml" id="string_fromcharcode"><literal>fromCharCode</literal></link> </listitem> <listitem> ES6: <link doc="reference.xml" id="string_fromcodepoint"><literal>fromCodePoint</literal></link> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>String</literal>: <list type="bullet"> <listitem> ES5.1: <link doc="reference.xml" id="string_charat"><literal>charAt</literal></link>, <link doc="reference.xml" id="string_concat"><literal>concat</literal></link>, <link doc="reference.xml" id="string_indexof"><literal>indexOf</literal></link>, <link doc="reference.xml" id="string_lastindexof"><literal>lastIndexOf</literal></link>, <link doc="reference.xml" id="string_match"><literal>match</literal></link>, <link doc="reference.xml" id="string_replace"><literal>replace</literal></link> <link doc="reference.xml" id="string_search"><literal>search</literal></link>, <link doc="reference.xml" id="string_slice"><literal>slice</literal></link>, <link doc="reference.xml" id="string_split"><literal>split</literal></link>, <link doc="reference.xml" id="string_substr"><literal>substr</literal></link>, <link doc="reference.xml" id="string_substring"><literal>substring</literal></link>, <link doc="reference.xml" id="string_tolowercase"><literal>toLowerCase</literal></link>, <link doc="reference.xml" id="string_trim"><literal>trim</literal></link>, <link doc="reference.xml" id="string_touppercase"><literal>toUpperCase</literal></link> </listitem> <listitem> ES6: <link doc="reference.xml" id="string_codepointat"><literal>codePointAt</literal></link>, <link doc="reference.xml" id="string_endswith"><literal>endsWith</literal></link>, <link doc="reference.xml" id="string_includes"><literal>includes</literal></link>, <link doc="reference.xml" id="string_repeat"><literal>repeat</literal></link>, <link doc="reference.xml" id="string_startswith"><literal>startsWith</literal></link> </listitem> <listitem> ES8: <link doc="reference.xml" id="string_padend"><literal>padEnd</literal></link>, <link doc="reference.xml" id="string_padstart"><literal>padStart</literal></link> </listitem> <listitem> ES9: <link doc="reference.xml" id="string_trimend"><literal>trimEnd</literal></link> (<link doc="changes.xml" id="njs0.3.4">0.3.4</link>), <link doc="reference.xml" id="string_trimstart"><literal>trimStart</literal></link> (<link doc="changes.xml" id="njs0.3.4">0.3.4</link>) </listitem> <listitem> нестандартные: <link doc="reference.xml" id="string_bytesfrom"><literal>bytesFrom</literal></link> (0.2.3), <link doc="reference.xml" id="string_frombytes"><literal>fromBytes</literal></link>, <link doc="reference.xml" id="string_fromutf8"><literal>fromUTF8</literal></link>, <link doc="reference.xml" id="string_tobytes"><literal>toBytes</literal></link>, <link doc="reference.xml" id="string_toutf8"><literal>toUTF8</literal></link> </listitem> </list> </listitem> <listitem> Методы <literal>Object</literal>: <list type="bullet"> <listitem> ES5.1: <literal>create</literal> (поддержка без списка свойств), <literal>defineProperties</literal> (поддержка дескрипторов доступа начиная с версии <link doc="changes.xml" id="njs0.3.3">0.3.3</link>), <literal>defineProperty</literal> (поддержка дескрипторов доступа начиная с версии <link doc="changes.xml" id="njs0.3.3">0.3.3</link>), <literal>freeze</literal>, <literal>getOwnPropertyDescriptor</literal>, <literal>getOwnPropertyDescriptors</literal> (<link doc="changes.xml" id="njs0.3.1">0.3.1</link>), <literal>getOwnPropertyNames</literal> (<link doc="changes.xml" id="njs0.3.1">0.3.1</link>), <literal>getPrototypeOf</literal>, <literal>isExtensible</literal>, <literal>isFrozen</literal>, <literal>isSealed</literal>, <literal>keys</literal>, <literal>preventExtensions</literal>, <literal>seal</literal> </listitem> <listitem> ES6: <literal>assign</literal> (<link doc="changes.xml" id="njs0.3.7">0.3.7</link>) </listitem> <listitem> ES8: <link doc="reference.xml" id="object_entries"><literal>entries</literal></link> (<link doc="changes.xml" id="njs0.2.7">0.2.7</link>), <link doc="reference.xml" id="object_values"><literal>values</literal></link> (<link doc="changes.xml" id="njs0.2.7">0.2.7</link>) </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>Object</literal>: <list type="bullet"> <listitem> ES5.1: <literal>hasOwnProperty</literal>, <literal>isPrototypeOf</literal>, (<link doc="changes.xml" id="njs0.3.0">0.3.0</link>), <literal>propertyIsEnumerable</literal>, <literal>toString</literal>, <literal>valueOf</literal> </listitem> <listitem> ES6: <literal>is</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>), <literal>setPrototypeOf</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>) </listitem> </list> </listitem> <listitem> Методы <literal>Array</literal>: <list type="bullet"> <listitem> ES5.1: <literal>isArray</literal> </listitem> <listitem> ES6: <literal>of</literal> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>Array</literal>: <list type="bullet"> <listitem> ES5.1: <literal>concat</literal>, <literal>every</literal>, <literal>filter</literal>, <literal>forEach</literal>, <literal>indexOf</literal>, <literal>join</literal>, <literal>lastIndexOf</literal>, <literal>map</literal>, <literal>pop</literal>, <literal>push</literal>, <literal>reduce</literal>, <literal>reduceRight</literal>, <literal>reverse</literal>, <literal>shift</literal>, <literal>slice</literal>, <literal>some</literal>, <literal>sort</literal>, <literal>splice</literal>, <literal>unshift</literal> </listitem> <listitem> ES6: <literal>copyWithin</literal> (<link doc="changes.xml" id="njs0.3.7">0.3.7</link>), <literal>fill</literal>, <literal>find</literal>, <literal>findIndex</literal> </listitem> <listitem> ES7: <literal>includes</literal> </listitem> </list> </listitem> <listitem> Методы <literal>ArrayBuffer</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>isView</literal> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>ArrayBuffer</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>slice</literal> </listitem> </list> </listitem> <listitem> Конструкторы <literal>Typed-array</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>Int8Array</literal>, <literal>Uint8Array</literal>, <literal>Uint8ClampedArray</literal>, <literal>Int16Array</literal>, <literal>Uint16Array</literal>, <literal>Int32Array</literal>, <literal>Uint32Array</literal>, <literal>Float32Array</literal>, <literal>Float64Array</literal> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>Typed-array</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>copyWithin</literal>, <literal>fill</literal>, <literal>join</literal>, <literal>set</literal>, <literal>slice</literal>, <literal>subarray</literal>, <literal>toString</literal> </listitem> </list> </listitem> <listitem> Методы <literal>Promise</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>reject</literal>, <literal>resolve</literal> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>Promise</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>): <list type="bullet"> <listitem> ES6: <literal>catch</literal>, <literal>finally</literal>, <literal>then</literal> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>Function</literal>: <list type="bullet"> <listitem> ES5.1: <literal>apply</literal>, <literal>bind</literal>, <literal>call</literal> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>RegExp</literal>: <list type="bullet"> <listitem> ES5.1: <literal>exec</literal>, <literal>test</literal>, <literal>toString</literal> </listitem> </list> </listitem> <listitem> <literal>RegExp</literal> ES9 именные группы записи (<link doc="changes.xml" id="njs0.3.2">0.3.2</link>) </listitem> <listitem> Методы <literal>Date</literal>: <list type="bullet"> <listitem> ES5.1: <literal>now</literal>, <literal>parse</literal>, <literal>UTC</literal> </listitem> </list> </listitem> <listitem> Методы экземпляра класса <literal>Date</literal>: <list type="bullet"> <listitem> ES5.1: <literal>getDate</literal>, <literal>getDay</literal>, <literal>getFullYear</literal>, <literal>getHours</literal>, <literal>getMilliseconds</literal>, <literal>getMinutes</literal>, <literal>getMonth</literal>, <literal>getSeconds</literal>, <literal>getTime</literal>, <literal>getTimezoneOffset</literal>, <literal>getUTCDate</literal>, <literal>getUTCDay</literal>, <literal>getUTCFullYear</literal>, <literal>getUTCHours</literal>, <literal>getUTCMilliseconds</literal>, <literal>getUTCMinutes</literal>, <literal>getUTCMonth</literal>, <literal>getUTCSeconds</literal>, <literal>toDateString</literal>, <literal>toISOString</literal>, <literal>toLocaleDateString</literal>, <literal>toLocaleString</literal>, <literal>toLocaleTimeString</literal>, <literal>toTimeString</literal>, <literal>toUTCString</literal>, <literal>setDate</literal>, <literal>setFullYear</literal>, <literal>setHours</literal>, <literal>setMinutes</literal>, <literal>setMilliseconds</literal>, <literal>setMonth</literal>, <literal>setSeconds</literal>, <literal>setTime</literal>, <literal>setUTCDate</literal>, <literal>setUTCFullYear</literal>, <literal>setUTCHours</literal>, <literal>setUTCMilliseconds</literal>, <literal>setUTCMinutes</literal>, <literal>setUTCMonth</literal>, <literal>setUTCSeconds</literal> </listitem> </list> </listitem> <listitem> Методы <link doc="reference.xml" id="core_json"><literal>JSON</literal></link>: <list type="bullet"> <listitem> ES5.1: <link doc="reference.xml" id="core_json_parse"><literal>parse</literal></link>, <link doc="reference.xml" id="core_json_stringify"><literal>stringify</literal></link> </listitem> </list> </listitem> <listitem> ES5.1 объект <literal>arguments</literal> (0.2.5) </listitem> <listitem> ES6 синтаксис rest параметров (без поддержки деструктуризации) (<link doc="changes.xml" id="njs0.2.7">0.2.7</link>) </listitem> <listitem> ES5.1 глобальные функции: <link doc="reference.xml" id="decodeuri"><literal>decodeURI</literal></link>, <link doc="reference.xml" id="decodeuricomponent"><literal>decodeURIComponent</literal></link>, <link doc="reference.xml" id="encodeuri"><literal>encodeURI</literal></link>, <link doc="reference.xml" id="encodeuricomponent"><literal>encodeURIComponent</literal></link>, <literal>isFinite</literal>, <literal>isNaN</literal>, <literal>parseFloat</literal>, <literal>parseInt</literal> </listitem> <listitem> Объекты <literal>Error</literal>: <literal>Error</literal>, <literal>EvalError</literal>, <literal>InternalError</literal>, <literal>RangeError</literal>, <literal>ReferenceError</literal>, <literal>SyntaxError</literal>, <literal>TypeError</literal>, <literal>URIError</literal> </listitem> <listitem> Функции <link doc="reference.xml" id="cleartimeout"><literal>clearTimeout</literal></link> и <link doc="reference.xml" id="settimeout"><literal>setTimeout</literal></link> (0.2.0) </listitem> <listitem> Методы <literal>File system</literal>: <link doc="reference.xml" id="fs_accesssync"><literal>fs.accessSync</literal></link> (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), <link doc="reference.xml" id="appendfilesync"><literal>fs.appendFileSync</literal></link>, <link doc="reference.xml" id="readfilesync"><literal>fs.readFileSync</literal></link>, <link doc="reference.xml" id="fs_realpathsync"><literal>fs.realpathSync</literal></link> (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), <link doc="reference.xml" id="fs_renamesync"><literal>fs.renameSync</literal></link> (<link doc="changes.xml" id="njs0.3.4">0.3.4</link>), <link doc="reference.xml" id="fs_symlinksync"><literal>fs.symlinkSync</literal></link> (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), <link doc="reference.xml" id="fs_unlinksync"><literal>fs.unlinkSync</literal></link> (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), <link doc="reference.xml" id="writefilesync"><literal>fs.writeFileSync</literal></link> </listitem> <listitem> <literal>fs.promises</literal> API (<link doc="changes.xml" id="njs0.3.9">0.3.9</link>), асинхронная версия файловых методов file system. </listitem> <listitem> Методы <literal>Crypto</literal> (0.2.0): <link doc="reference.xml" id="crypto_createhash"><literal>crypto.createHash</literal></link>, <link doc="reference.xml" id="crypto_createhmac"><literal>crypto.createHmac</literal></link> </listitem> <listitem> ES6 поддержка модулей: инструкции <literal>export</literal> по умолчанию и <literal>import</literal> по умолчанию (<link doc="changes.xml" id="njs0.3.0">0.3.0</link>) </listitem> <listitem> ES6 поддержка стрелочных функций (<link doc="changes.xml" id="njs0.3.1">0.3.1</link>) </listitem> <listitem> Шаблонные строки: многострочные литералы, интерполяция выражений, вложенные шаблоны (<link doc="changes.xml" id="njs0.3.2">0.3.2</link>) </listitem> <listitem> Глобальные объекты (<link doc="changes.xml" id="njs0.3.3">0.3.3</link>): <list type="bullet"> <listitem> псевдоним <literal>globalThis</literal> (<link doc="changes.xml" id="njs0.3.8">0.3.8</link>), </listitem> <listitem> <link doc="reference.xml" id="process"><literal>process</literal></link> </listitem> </list> </listitem> </list> </para> </section> </article>