Совместимость
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
-
-
RegExpES9 именные группы записи (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.writeFileSyncfs.writeSync(0.7.7) -
fs.promisesAPI (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,inflateRawSyncinflateSync -
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.digestsubtle.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
-