相容性
njs 的建立符合 ECMAScript 5.1(嚴格模式),並有一些 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
-