Совместимость
njs совместим с ECMAScript 5.1 (строгий режим) c некоторыми расширениями ECMAScript 6 и позже. Совместимость находится в стадии развития.
Описания методов и свойств, доступных только в njs и не соответствующих стандарту ECMAScript, доступны в справочнике. Описания методов и свойств njs, соответствующих стандарту, доступны в спецификации ECMAScript.
Готовая функциональность
- Логические значения, числа, строки, объекты, массивы, функции, конструкторы функций (0.3.6) и регулярные выражения
- ES5.1 операторы, ES7 операторы возведения в степень
-
ES5.1 инструкции:
break
,catch
,continue
,do while
,else
,finally
,for
,for in
,if
,return
,switch
,throw
,try
,var
,while
, инструкции меток (labels) (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
-
ES6:
-
Методы
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
-
ES6:
-
Свойства
Number
:-
ES6:
EPSILON
,MAX_SAFE_INTEGER
,MAX_VALUE
,MIN_SAFE_INTEGER
,MIN_VALUE
,NEGATIVE_INFINITY
,NaN
,POSITIVE_INFINITY
-
ES6:
-
Методы
Number
:-
ES6:
isFinite
,isInteger
,isNaN
,isSafeInteger
,parseFloat
,parseInt
-
ES6:
-
Методы прототипа
Number
: -
Методы
String
:-
ES5.1:
fromCharCode
-
ES6:
fromCodePoint
-
ES5.1:
-
Методы прототипа
String
: -
Методы
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)
-
ES5.1:
-
Методы прототипа
Object
: -
Методы
Array
:-
ES5.1:
isArray
-
ES6:
of
-
ES13:
from
(0.8.0),
-
ES5.1:
-
Методы прототипа
Array
: -
Методы
ArrayBuffer
(0.3.8):-
ES6:
isView
-
ES6:
-
Методы прототипа
ArrayBuffer
(0.3.8):-
ES6:
slice
-
ES6:
-
Конструкторы
Typed-array
(0.3.8):-
ES6:
Int8Array
,Uint8Array
,Uint8ClampedArray
,Int16Array
,Uint16Array
,Int32Array
,Uint32Array
,Float32Array
,Float64Array
-
ES6:
-
Методы прототипа
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)
-
ES6:
-
Методы
Buffer
(0.4.4): -
Методы прототипа
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): -
Методы прототипа
Promise
(0.3.8):-
ES6:
catch
,finally
,then
-
ES6:
-
Методы прототипа
Function
:-
ES5.1:
apply
,bind
,call
-
ES5.1:
-
Свойства аксессоров прототипа
RegExp
: -
Методы прототипа
RegExp
: -
Свойства экземпляра
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
-
ES6:
-
Методы
Date
:-
ES5.1:
now
,parse
,UTC
-
ES5.1:
-
Методы прототипа
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
-
ES5.1:
-
Методы
JSON
:-
ES5.1:
parse
,stringify
-
ES5.1:
-
Методы
Symbol
(0.7.6):-
for
,keyfor
-
-
ES5.1 объект
arguments
(0.2.5) - ES6 синтаксис rest параметров (без поддержки деструктуризации) (0.2.7)
-
ES5.1 global functions:
decodeURI
,decodeURIComponent
,encodeURI
,encodeURIComponent
,isFinite
,isNaN
,parseFloat
,parseInt
-
Global functions (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) -
fs.promises
API (0.3.9), асинхронная версия файловых методов file system. -
Методы
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 поддержка модулей:
инструкции
export
по умолчанию и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
,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
-
псевдоним
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
-
-
Свойства объекта nginx:
-
HTTP Request
:r.args
,r.headersIn
,r.headersOut
,r.httpVersion
,r.internal
,r.method
,r.parent
,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.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
-