Spec-Zone.ru › nginx

Совместимость

На этой странице описывается только движок JavaScript njs. Движок njs устарел начиная с версии 1.0.0; в новом коде следует использовать движок QuickJS.

njs создан в соответствии со стандартом ECMAScript 5.1 (строгий режим) с некоторыми расширениями из ECMAScript 6 и более поздних версий. Соответствие стандарту продолжает развиваться.

Определения свойств и методов njs, не соответствующих стандарту ECMAScript, можно найти в разделе Справочник. Определения свойств и методов njs, соответствующих стандарту ECMAScript, можно найти в спецификации ECMAScript.

Что поддерживается в настоящее время

  • Логические значения, числа, строки, объекты, массивы, функции, конструкторы функций (0.3.6) и регулярные выражения
  • Операторы ES5.1, операторы возведения в степень ES7, опциональная цепочка ES2020 (0.9.6), операторы логического присваивания ES2021 ||=, &&=, ??= (0.9.6)
  • Инструкции ES5.1: break, catch, continue, do while, else, finally, for, for in, if, return, switch, throw, try, var, while, помеченные инструкции (0.2.8)
  • Инструкции ES6: let (0.6.0), const (0.6.0), async (0.7.0), await (0.7.0)
  • Свойства Math:
    • ES6: E, LN10, LN2, LOG10E, LOG2E, PI, SQRT1_2, SQRT2
  • Методы Math:
    • ES6: abs, acos, acosh, asin, asinh, atan, atan2, atanh, cbrt, ceil, clz32, cos, cosh, exp, expm1, floor, fround, hypot, imul, log, log10, log1p, log2, max, min, pow, random, round, sign, sin, sinh, sqrt, tan, tanh, trunc
  • Свойства Number:
    • ES6: EPSILON, MAX_SAFE_INTEGER, MAX_VALUE, MIN_SAFE_INTEGER, MIN_VALUE, NEGATIVE_INFINITY, NaN, POSITIVE_INFINITY
  • Методы Number:
    • ES6: isFinite, isInteger, isNaN, isSafeInteger, parseFloat, parseInt
  • Методы прототипа Number:
    • ES6: toExponential (0.3.6), toFixed (0.3.6), toPrecision (0.3.6)
  • Методы String:
    • ES5.1: fromCharCode
    • ES6: fromCodePoint
  • Методы прототипа String:
    • ES5.1: charAt, concat, indexOf, lastIndexOf, match, replace, search, slice, split, substr, substring, toLowerCase, trim, toUpperCase
    • ES6: codePointAt, endsWith, includes, repeat, startsWith
    • ES8: padEnd, padStart
    • ES9: trimEnd (0.3.4), trimStart (0.3.4)
    • ES12: replaceAll (0.7.10)
  • Методы Object:
    • ES5.1: create (поддержка без списка свойств), defineProperties (поддержка дескрипторов доступа начиная с 0.3.3), defineProperty (поддержка дескрипторов доступа начиная с 0.3.3), freeze, getOwnPropertyDescriptor, getOwnPropertyDescriptors (0.3.1), getOwnPropertyNames (0.3.1), getPrototypeOf, isExtensible, isFrozen, isSealed, keys, preventExtensions, seal
    • ES6: assign (0.3.7)
    • ES8: entries (0.2.7), values (0.2.7)
  • Методы прототипа Object:
    • ES5.1: hasOwnProperty, isPrototypeOf, (0.3.0), propertyIsEnumerable, toString, valueOf
    • ES6: is (0.3.8), setPrototypeOf (0.3.8)
  • Методы Array:
    • ES5.1: isArray
    • ES6: of
    • ES13: from (0.8.0),
  • Методы прототипа Array:
    • ES5.1: concat, every, filter, forEach, indexOf, join, lastIndexOf, map, pop, push, reduce, reduceRight, reverse, shift, slice, some, sort, splice, unshift
    • ES6: copyWithin (0.3.7), fill, find, findIndex
    • ES7: includes
    • ES13: toReversed (0.8.0), toSorted (0.8.0), toSpliced (0.8.0)
  • Методы ArrayBuffer (0.3.8):
    • ES6: isView
  • Методы прототипа ArrayBuffer (0.3.8):
    • ES6: slice
  • Конструкторы Typed-array (0.3.8):
    • ES6: Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array
  • Typed-array методы прототипа (0.3.8):
    • ES6: copyWithin, every (0.4.4), fill, filter (0.4.4), find (0.4.4), findIndex (0.4.4), forEach (0.4.4), includes (0.4.4), indexOf (0.4.4), join, lastIndexOf (0.4.4), map (0.4.4), reduce (0.4.4), reduceRight (0.4.4), reverse (0.4.4), set, slice, some (0.4.4), sort (0.4.2), subarray, toString
    • ES13: toReversed (0.8.0) toSorted (0.8.0)
  • Buffer методы (0.4.4):
    • alloc, allocUnsafe, byteLength, compare, concat, from, isBuffer, isEncoding
  • Buffer методы прототипа: (0.4.4):
    • compare, copy, equals, fill, includes, indexOf, lastIndexOf, readIntBE, readInt8, readInt16BE, readInt32BE, readIntLE, readInt8, readInt16LE, readInt32LE, readUIntBE, readUInt8, readUInt16BE, readUInt32BE, readUIntLE, readUInt8, readUInt16LE, readUInt32LE, readDoubleBE, readDoubleLE, readFloatBE, readFloatLE, subarray, slice, swap16, swap32, swap64, toJSON, toString, write, writeIntBE, writeInt8, writeInt16BE, writeInt32BE, writeIntLE, writeInt8, writeInt16LE, writeInt32LE, writeUIntBE, writeUInt8, writeUInt16BE, writeUInt32BE, writeUIntLE, writeUInt8, writeUInt16LE, writeUInt32LE, writeDoubleBE, writeDoubleLE, writeFloatBE, writeFloatLE
  • Promise методы (0.3.8):
    • ES6: any (0.6.2), all (0.6.2), allSettled (0.6.2), reject, resolve, race (0.6.2)
  • Promise методы прототипа (0.3.8):
    • ES6: catch, finally, then
  • Function методы прототипа:
    • ES5.1: apply, bind, call
  • RegExp свойства-акцессоры прототипа:
    • flags (0.6.0), global, ignoreCase, multiline, source, sticky (0.6.0)
  • RegExp методы прототипа:
    • [@@replace] (0.4.2), [@@split] (0.6.0)
    • ES5.1: exec, test, toString
  • RegExp свойства экземпляра:
    • lastIndex
  • RegExp именованные группы захвата ES9 (0.3.2)
  • DataView методы прототипа (0.4.4):
    • ES6: getFloat32, getFloat64, getInt16, getInt32, getInt8, getUint16, getUint32, getUint8, setFloat32, setFloat64, setInt16, setInt32, setInt8, setUint16, setUint32, setUint8
  • Date методы:
    • ES5.1: now, parse, UTC
  • Date методы прототипа:
    • ES5.1: getDate, getDay, getFullYear, getHours, getMilliseconds, getMinutes, getMonth, getSeconds, getTime, getTimezoneOffset, getUTCDate, getUTCDay, getUTCFullYear, getUTCHours, getUTCMilliseconds, getUTCMinutes, getUTCMonth, getUTCSeconds, toDateString, toISOString, toLocaleDateString, toLocaleString, toLocaleTimeString, toTimeString, toUTCString, setDate, setFullYear, setHours, setMinutes, setMilliseconds, setMonth, setSeconds, setTime, setUTCDate, setUTCFullYear, setUTCHours, setUTCMilliseconds, setUTCMinutes, setUTCMonth, setUTCSeconds
  • JSON методы:
    • ES5.1: parse, stringify
  • Symbol методы (0.7.6):
    • for, keyfor
  • Объект ES5.1 arguments (0.2.5)
  • Синтаксис остаточных параметров ES6 (без поддержки деструктуризации) (0.2.7)
  • Глобальные функции ES5.1: decodeURI, decodeURIComponent, encodeURI, encodeURIComponent, isFinite, isNaN, parseFloat, parseInt
  • Глобальные функции (0.7.6): atob, btoa
  • Объекты Error: Error, EvalError, InternalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError
  • Функции clearTimeout и setTimeout (0.2.0)
  • Методы File system: fs.accessSync (0.3.9), fs.appendFileSync, fs.closeSync, fs.existsSync (0.8.2), fs.FileHandle (0.7.7), fs.fstatSync (0.7.7), fs.lstatSync (0.7.1), fs.mkdirSync (0.4.2), fs.openSync (0.7.7), fs.promises.open (0.7.7), fs.readdirSync (0.4.2), fs.readFileSync, fs.readSync (0.7.7), fs.realpathSync (0.3.9), fs.renameSync (0.3.4), fs.rmdirSync (0.4.2), fs.symlinkSync (0.3.9), fs.unlinkSync (0.3.9), fs.writeFileSync fs.writeSync (0.7.7)
  • API fs.promises (0.3.9), асинхронная версия методов файловой системы.
  • Методы Crypto (0.2.0): crypto.createHash, crypto.createHmac
  • Методы Query String (0.4.3): querystring.decode, querystring.encode, querystring.escape, querystring.parse, querystring.stringify, querystring.unescape
  • Методы TextDecoder (0.4.3): encoding, fatal, ignoreBOM, decode
  • Методы TextEncoder (0.4.3): encode, encodeInto
  • Методы XML (0.7.10): parse, xml.c14n, xml.exclusiveC14n
  • Методы zlib (0.7.12): deflateRawSync, deflateSync, inflateRawSync inflateSync
  • Поддержка модулей ES6: инструкции default export и default import (0.3.0)
  • Стрелочные функции ES6 (0.3.1)
  • Шаблонные литералы: многострочные строки, интерполяция выражений, вложенные шаблоны (0.3.2)
  • Глобальные объекты (0.3.3):
    • console (0.8.2): error, info, log, time, timeEnd, warn
    • crypto (0.7.0): getRandomValues, randomUUID (0.9.7), subtle.encrypt, subtle.decrypt, subtle.deriveBits, subtle.deriveKey, subtle.digest subtle.exportKey (0.7.10), subtle.generateKey (0.7.10), subtle.importKey, subtle.sign, subtle.verify, subtle.wrapKey (0.9.7), subtle.unwrapKey (0.9.7)
    • globalThis псевдоним (0.3.8),
    • njs: version, version_number (0.7.4), dump, memoryStats (0.7.8), on (0.5.2)
    • process: argv, env, pid, ppid
  • Методы объектов nginx:
    • HTTP Request: r.done (0.5.2), r.error, r.finish, r.internalRedirect, r.log, r.return (0.5.0), r.send (0.5.0), r.sendBuffer (0.5.2), r.sendHeader, r.setReturnValue (0.7.0), r.subrequest, r.warn
    • Stream Session: s.allow (0.2.4), s.decline (0.2.4), s.deny (0.2.4), s.done (0.2.4), s.error, s.log, s.off (0.2.4), s.on (0.2.4), s.send (0.2.4), s.sendDownstream (0.7.8), s.sendUpstream (0.7.8), s.setReturnValue (0.7.0), s.warn
    • Headers (0.5.1): append, delete, get, getAll, forEach, has, set
    • Request (0.7.10): arrayBuffer, headers, json, text
    • Response (0.5.1): arrayBuffer, headers, json, text
    • ngx (0.5.0): fetch (0.5.1), log
    • ngx.shared (0.8.0): add, clear, delete, freeSpace, get, has, incr, items, keys, pop, replace, set, size, ttl (0.9.7)
  • свойства объекта nginx:
    • HTTP Request: r.args, r.headersIn, r.headersOut, r.httpVersion, r.internal, r.jsVarNames (0.9.9), r.method, r.parent, r.readRequestArrayBuffer (0.9.9), r.readRequestForm (0.9.9), r.readRequestJSON (0.9.9), r.readRequestText (0.9.9), r.rawHeadersIn (0.4.1), r.rawHeadersOut (0.4.1), r.rawVariables (0.5.0), r.remoteAddress, r.requestBuffer (0.5.0), r.requestText, r.responseBuffer (0.5.0), r.responseText (0.5.0), r.status, r.uri, r.variables (0.2.8)
    • Stream Session: s.jsVarNames (0.9.9), s.remoteAddress, s.rawVariables (0.5.0), s.status (0.5.2), s.variables (0.2.8)
    • Periodic Session (0.8.1): PeriodicSession.rawVariables, PeriodicSession.variables
    • Request (0.7.10): bodyUsed, cache, credentials, method, mode, url
    • Response (0.5.1): bodyUsed, ok, redirected, status, statusText, type, url
    • ngx (0.5.0): build (0.8.0), conf_file_path (0.8.0), conf_prefix (0.7.8), error_log_path (0.8.0), prefix (0.8.0), version (0.8.0), version_number (0.8.0), worker_id (0.8.0)
    • ngx.shared (0.8.0): capacity, name, type

© 2002-2021 Igor Sysoev
© 2011-2026 Nginx, Inc.
Licensed under the BSD License.
https://nginx.org/en/docs/njs/compatibility.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API