Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
isArray vs instanceof vs Symbol.iterator vs Object.prototype.toString.call
Symbol.iterator also matches TypedArray, Map, and such
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Android 12; Mobile; rv:138.0) Gecko/138.0 Firefox/138.0
Browser:
Firefox Mobile 138
Operating system:
Android
Device Platform:
Mobile
Date tested:
one year ago
Test name
Executions per second
isArray
682414.9 Ops/sec
instanceof
516770.8 Ops/sec
Symbol.iterator
329474.3 Ops/sec
Object.prototype.toString.call
155815.8 Ops/sec
Script Preparation code:
var types = { array: [1,2,3], number: 123, string: '123', map: new Map([[1,1],[2,2],[3,3]]), set: new Set([1,2,3]), buffer: new ArrayBuffer([1,2,3]), boolean: true, arrow: () => {}, function: function () {}, object: {}, u8: new Uint8Array(), u16: new Uint16Array(), u32: new Uint32Array(), i8: new Int8Array(), i16: new Int16Array(), i32: new Int32Array() } var keys = Object.keys(types)
Tests:
isArray
keys.map(key => Array.isArray(types[key]) === true)
instanceof
keys.map(key => (types[key] instanceof Array) === true)
Symbol.iterator
keys.map(key => types[key][Symbol.iterator] !== undefined)
Object.prototype.toString.call
keys.map(key => Object.prototype.toString.call(types[key]) === '[object Array]')