互換性
njs は、ECMAScript 5.1(strict モード)に準拠して作成されており、一部の ECMAScript 6 以降の拡張機能が含まれています。準拠は現在も進化中です。
ECMAScript に準拠しない 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
, ラベル付きステートメント(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グローバル関数:
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) -
ファイルシステム
メソッド: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), ファイルシステムメソッドの非同期バージョン。 -
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
-