Appearance
兼容性
提示
来自deepseek解释
原文链接:https://nginx.org/en/docs/njs/compatibility.html
此页面描述的是 njs JavaScript 引擎。njs 引擎自 1.0.0 版本起已弃用;新代码应改用 QuickJS 引擎。
njs 遵循 ECMAScript 5.1(严格模式)开发,并包含部分 ECMAScript 6 及更高版本的扩展。兼容性仍在持续演进中。不符合 ECMAScript 标准的 njs 特定属性和方法的定义可在参考文档中找到。符合 ECMAScript 标准的 njs 属性和方法的定义可在 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
- 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):
- Buffer 方法(0.4.4)
- Buffer 原型方法(0.4.4)
- 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 剩余参数语法(不支持解构)(0.2.7)
- ES5.1 全局函数:
decodeURI、decodeURIComponent、encodeURI、encodeURIComponent、isFinite、isNaN、parseFloat、parseInt - 全局函数(0.7.6):
atob、btoa - 错误对象:
Error、EvalError、InternalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError clearTimeout和setTimeout函数(0.2.0)- 文件系统方法:
fs.accessSync(0.3.9)fs.appendFileSyncfs.closeSyncfs.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.readFileSyncfs.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.writeFileSyncfs.writeSync(0.7.7)
- fs.promises API(0.3.9):文件系统方法的异步版本
- Crypto 方法(0.2.0):
- Query String 方法(0.4.3):
- TextDecoder 方法(0.4.3):
- TextEncoder 方法(0.4.3):
- XML 方法(0.7.10):
- zlib 方法(0.7.12):
- ES6 模块支持:默认导出和默认导入语句(0.3.0)
- ES6 箭头函数(0.3.1)
- 模板字面量:多行字符串、表达式插值、模板嵌套(0.3.2)
- 全局对象(0.3.3):
- nginx 对象方法
- nginx 对象属性