互換性
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
-
-
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グローバル関数:
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.promisesAPI (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,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.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
-