Basic JavaScript:Testing Objects for Properties

Tell us what’s happening:

Anyone notice the test doesn’t pass when you try using the dot notation but passes only when you use the bracket ?
Could anyone please explain to me why and how the dot notation could be used.
Thanks :sparkling_heart:

Your code so far


// Setup
var myObj = {
 gift: "pony",
 pet: "kitten",
 bed: "sleigh"
};

function checkObj(checkProp) {
 // Your Code Here
 if(
myObj.hasOwnProperty(checkProp)){
// return myObj.checkProp;   
return myObj[checkProp];
}else{

 return "Not Found";
}
}

// Test your code by modifying these values
checkObj("gift");

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36.

Challenge: Testing Objects for Properties

Link to the challenge:
https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/basic-javascript/testing-objects-for-properties

Try to do testing by putting console.log(myObj.checkProp),it produces undefined.

Bracket notation is useful when we deal with some variable,we cannot use dot notation

with variables,as the example shows.

Bracket notation can be used when we have some properties that are not consisted of just one word like “first name” or if we use some variable that is used through program. In any other case,we can and should use dot notation.

Hope this clears a little bit of confusion. :slight_smile:

1 Like

@Nina1012 Thanks for the explanation. :smile