兼容性
njs 是按照 ECMAScript 5.1(严格模式)创建的,带有一些 ECMAScript 6 及更高版本的扩展。 合规性仍在不断发展。
njs 特定属性和方法的定义 不符合 ECMAScript 可以在 参考 中找到。 njs 属性和方法的定义 符合 ECMAScript 可以在 ECMAScript 中找到 规范。
当前支持的功能
- 布尔值、数字、字符串、对象、数组、 函数, 函数构造函数 (0.3.6)、 和正则表达式
- ES5.1 运算符、ES7 幂运算符
- ES5.1 语句: , ,
标记语句 (0.2.8
break
catch
continue
do while
else
finally
for
for in
if
return
switch
throw
try
var
while
) - ES6 语句:(0.6.0)、(0.6.0)、(0.7.0)、(0.7.0
let
const
async
await
) -
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:(支持无属性列表)、(访问器描述符支持
从 0.3.3 开始),(访问器描述符支持
自 0.3.3 起), , , (0.3.1), (0.3.1), ,
create
defineProperties
defineProperty
freeze
getOwnPropertyDescriptor
getOwnPropertyDescriptors
getOwnPropertyNames
getPrototypeOf
isExtensible
isFrozen
isSealed
keys
preventExtensions
seal
- ES6:(0.3.7
assign
) - ES8:(0.2.7)、(0.2.7)
entries
values
)
- ES5.1:(支持无属性列表)、(访问器描述符支持
从 0.3.3 开始),(访问器描述符支持
自 0.3.3 起), , , (0.3.1), (0.3.1), ,
-
Object
原型方法: -
Array
方法:- ES5.1 的版本:
isArray
- ES6 的:
of
- ES13:(0.8.0)、
from
- 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: , (0.4.4), , (0.4.4), (0.4.4), (0.4.4), (0.4.4), (0.4.4), (0.4.4), , (0.4.4), (0.4.4), (0.4.4), (0.4.4), (0.4.4), (0.4.4), , (0.4.4), (0.4.4), (0.4.2), ,
copyWithin
every
fill
filter
find
findIndex
forEach
includes
indexOf
join
lastIndexOf
map
reduce
reduceRight
reverse
set
slice
some
sort
subarray
toString
- ES13:(0.8.0) (0.8.0
toReversed
toSorted
)
- ES6: , (0.4.4), , (0.4.4), (0.4.4), (0.4.4), (0.4.4), (0.4.4), (0.4.4), , (0.4.4), (0.4.4), (0.4.4), (0.4.4), (0.4.4), (0.4.4), , (0.4.4), (0.4.4), (0.4.2), ,
-
Buffer
方法 (0.4.4): -
Buffer
原型方法: (0.4.4):-
比较
、复制
、等于
、填充
、包含
、indexOf
、lastIndexOf
、readIntBE、
、、readIntLE、
readUIntBE、
、、readUIntLE、readUIntLE、
、、readDoubleBE、
readDoubleLE、
readFloatBE
、readFloatLE
、子数组
、切片
、swap16
、swap32
、swap64
、toJSON、
toString
、write
、 writeIntBE、
writeIntLE
、writeUIntBE
、writeUIntLE
、 、 、、 writeDoubleBE
、writeDoubleLE、
writeFloatBE
、writeFloatLE
readInt8
readInt16BE
readInt32BE
readInt8
readInt16LE
readInt32LE
readUInt8
readUInt16BE
readUInt32BE
readUInt8
readUInt16LE
readUInt32LE
writeInt8
writeInt16BE
writeInt32BE
writeInt8
writeInt16LE
writeInt32LE
writeUInt8
writeUInt16BE
writeUInt32BE
writeUInt8
writeUInt16LE
writeUInt32LE
-
-
Promise
方法 (0.3.8): -
Promise
原型方法 (0.3.8):- ES6:、 、
catch
finally
then
- ES6:、 、
-
Function
原型方法:- ES5.1:、 、
apply
bind
call
- ES5.1:、 、
-
RegExp
prototype 访问器属性: -
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 对象
(0.2.5
arguments
) - 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) -
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)、 文件系统方法的异步版本。 -
加密
方法 (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):编码
、fatal
、ignoreBOM、
解码
-
TextEncoder
方法 (0.4.3):encode
、encodeInto
-
XML
方法 (0.7.10):解析
、xml.c14n
、xml.exclusiveC14n
-
zlib
方法 (0.7.12):deflateRawSync
、deflateSync
、inflateRawSync
inflateSync
- ES6 模块支持:
default 和
default 语句
(0.3.0
export
import
) - ES6 箭头函数 (0.3.1)
- 模板文字: 多行字符串、表达式插值、嵌套模板 (0.3.2)
- 全局对象
(0.3.3):
-
控制台
(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_number
(0.7.4)、dump
、memoryStats
(0.7.8)、on
(0.5.2) -
进程
:ARGV
、ENV
、PID
、PPID
-
- nginx 对象方法:
-
HTTP 请求
: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
-
流会话
: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
-
标头
(0.5.1):append
、delete
、get、getAll
、forEach
、has
、set
-
请求
(0.7.10):arrayBuffer
、headers
、json
、text
-
响应
(0.5.1):arrayBuffer
,headers
,json
,text
-
ngx
(0.5.0):fetch
(0.5.1)、log
-
ngx.shared
(0.8.0):添加
、清除
、删除、freeSpace
、get
、has
、incr
、items
、keys
、pop
、replace
、set
、size
-
- nginx 对象属性:
-
HTTP 请求
: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) -
流会话
:s.remoteAddress
、s.rawVariables
(0.5.0)、s.status
(0.5.2)、s.variables
(0.2.8) -
周期性会话
(0.8.1):PeriodicSession.rawVariables
、PeriodicSession.variables
-
请求
(0.7.10):bodyUsed
、cache
、credentials
、method
、mode
、url
-
响应
(0.5.1):bodyUsed
、ok
、redirected
、status
、statusText
、type
、url
-
NGX
(0.5.0):内部版本
(0.8.0)、conf_file_path
(0.8.0)、conf_prefix
(0.7.8)、error_log_path
(0.8.0)、前缀
(0.8.0)、版本
(0.8.0)、version_number
(0.8.0)、worker_id
(0.8.0) -
ngx.shared
(0.8.0):容量
、名称
、类型
-