Testing objects

by Dominic Myers

HTML

<fieldset id="console-log-div"></fieldset>
<script src="https://rawgit.com/bahmutov/console-log-div/master/console-log-div.js"></script>

CSS

.console-log-div {
  border: 1px solid gray;
  padding: 5px 10px;
  border-radius: 5px;
  width: 95% !important;
  background-color: #efefef;
}

JavaScript

let obj = {
    "one": 1,
    "two": 2,
    "three": {
        "threeOne": 31,
        "threeTwo": 32
    },
    "four": 4
};

console.group("Testing obj");
	console.log("obj:", obj)
	console.log("obj.three.threeOne === 31:", obj.three.threeOne === 31); // true
	console.log("obj.three.threeTwo === 31:", obj.three.threeTwo === 31); // false
	console.log("obj.three.threeThree === 31:", obj.three.threeThree === 33); // false
	console.log("obj.five === 31:", obj.five === 31); // false
	console.log("obj.five:", obj.five); // Exception
    /*
     * Will need to comment out the next two lines or the code won't continue running
     */
	// console.log("obj.five.fiveOne === 51:", obj.five.fiveOne === 51); 
    // EXCEPTION: Uncaught TypeError: Cannot read property 'fiveOne' of undefined
	// console.log("obj.five.fiveOne:", obj.five.fiveOne); 
    // EXCEPTION: Uncaught TypeError: Cannot read property 'fiveOne' of undefined
console.groupEnd();
console.log("---------------------------------------");
console.group("Testing obj with 'if'");
	console.log("obj:", obj)
	console.log("obj.three.threeOne === 31:", obj.three.threeOne === 31); // true
	console.log("obj.three.threeTwo === 31:", obj.three.threeTwo === 31); // false
	console.log("obj.three.threeThree === 31:", obj.three.threeThree === 33); // false
	console.log("obj.five === 31:", obj.five === 31); // false
	console.log("obj.five:", obj.five); // undefined
    if(
      obj.hasOwnProperty("five") 
      && 
      obj.five.hasOwnProperty("fiveOne") 
      && 
      obj.five.fiveOne === 51){
    	console.log("obj.five.fiveOne === 51:", true);
    }else{
    	console.log("obj.five.fiveOne === 51:", false);
    } // false
    if(obj.hasOwnProperty("five") 
      && 
      obj.five.hasOwnProperty("fiveOne") ){
        console.log("obj.five.fiveOne:", obj.five.fiveOne);
    }else{
    	console.log("obj.five.fiveOne:", undefined);
    } //...