eqeqeq vs eq (v3)

Revision 3 of this benchmark created by Mike McCaughan on


Description

Check performance of === vs == in varying situations.

Preparation HTML

<script>
  var u = undefined,
      i = 0,
      a = "0",
      n = null,
      e = '',
  isU = function (v) { return typeof u === 'undefined'; },
  isN = function (v) { return u === null; },
  isUN = function (v) { return typeof u !== 'undefined' && u !== null; },
  isUNfn = function (v) { return !isU(v) && !isN(v); },
  isUNb = function (v) { return !!!v; };
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
u eqeqeq undefined
if (u === undefined) {
 e = '';
}
ready
u eqeq undefined
if (u == undefined) {
 e = '';
}
ready
typeof u eqeqeq 'undefined'
if (typeof u === 'undefined') {
 e = '';
}
ready
typeof u eqeq 'undefined'
if (typeof u == 'undefined') {
 e = '';
}
ready
i eqeqeq 0
if (i === 0) {
 e = '';
}
ready
i eqeq 0
if (i == 0) {
 e = '';
}
ready
i eqeqeq '0'
if (i === '0') {
 e = '';
}
ready
i eqeq '0'
if (i == '0') {
 e = '';
}
ready
a eqeqeq 0
if (a === 0) {
 e = '';
}
ready
a eqeq 0
if (a == 0) {
 e = '';
}
ready
a eqeqeq '0'
if (a === '0') {
 e = '';
}
ready
a eqeqeq '0'
if (a == '0') {
 e = '';
}
ready
n eqeqeq null
if (n === null) {
 e = '';
}
ready
n eqeq null
if (n == null) {
 e = '';
}
ready
n eqeqeq 0
if (n === 0) {
 e = '';
}
ready
e eqeqeq ''
if (e === '') {
 e = '';
}
ready
e eqeq ''
if (e == '') {
 e = '';
}
ready
e.length eqeqeq 0
if (e.length === 0) {
 e = '';
}
ready
e.length eqeqeq 0
if (e.length == 0) {
 e = '';
}
ready
e.length !eqeq 0
if (e.length !== 0) {
 e = '';
}
ready
e.length !eq 0
if (e.length != 0) {
 e = '';
}
ready
e.length
if (e.length) {
 e = '';
}
ready
u
if (u) {
e = '';
}
ready
not u
if (!u) {
e = '';
}
ready
not not u
if (!!u) {
e = '';
}
ready
not not not u
if (!!!u) {
e = '';
}
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published on
  • Revision 2: published on
  • Revision 3: published by Mike McCaughan on
  • Revision 4: published by Mike McCaughan on
  • Revision 5: published by Mike McCaughan on
  • Revision 6: published by Mike McCaughan on
  • Revision 7: published by Mike McCaughan on
  • Revision 8: published on