'Undefined variable logging as {} or "" in Chrome/Edge [duplicate]

The script below seems to be rendering different results in IE and Chrome. I know the code is wrong as I'm calling name in a different scope. I'm also expecting it to log undefined. So yes, I'm just not sure about this difference in the behavior and why?

var obj = {
  testA: function() {
    var name;
  },
  testB: function() {
    console.log(name)
  }
}

obj.testB()

When testB() is called in EDGE and Chrome, I'm getting different log results:

  1. The log is an empty string ("") - CHROME List item
  2. The log is an empty object {} - EDGE enter image description here


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source