This is a pretty short example. I copy and paste the code below into a file, save it, and open it. Works fine in Chrome, fails in ie 11.
The output on the console is nonsense!
What's going on? Have a stumbled upon some strange bug?
test.b is clearly not undefined, as it is accessible by the JSON parser and by direct object evaluation.
Also, switching around the order of the variables in the log function does nothing to change test.b being undefined.
<!DOCTYPE html>
<html>
<head>
<title>wtf</title>
<script>
var test = {a:1,b:{c:1}}
console.log(test,JSON.stringify(test),test.b);
</script>
</head>
<body>
WTF IE
</body>
</html>
![](https://www.manongdao.com/static/images/pcload.jpg)
A bug report has been accepted by microsoft.
http://connect.microsoft.com/IE/feedbackdetail/view/958116/console-log-bug-on-11-0-9600-17239-displays-undefined-undefined-for-objects-and-arrays-which-are-properties-of-objects
So the answer appears to be, at this time, that it's a bug.
You have to write your own recursive log function, because the browser only logs on the first level.
To log all by default would cost too much performance and memory for the browser.
See: recursive log function
I recently ran into this issue as well.
The issue was that the page i was working on had compatibility mode set to IE8.
<meta http-equiv="X-UA-Compatible" content="IE=8" >
I believe IE8 did not have console, so console.log would be undefined.