Dot Notation vs Bracket Notation

Tell us what’s happening:

Your code so far


// Setup
function phoneticLookup(val) {
  var result = "";

  // Only change code below this line
  var lookup = {
    "alpha": "Adams",
    "bravo": "Boston",
    "charlie":"Chicago",
    "delta":"Denver",
    "echo":"Easy",
    "foxtrot":"Frank"
  }
  result = lookup.val; //lookup[val];
  // Only change code above this line
  return result;
}

// Change this value to test
phoneticLookup("charlie");

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/7.0.185.1002 Safari/537.36.

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

When I use dot notation for the result variable, it brings an error message. But when I use the brackets, there’s no problem. I thought they meant the same thing. Why is this so?

You can’t use variables with dot notation, when you write lookup.val it searches for a property called val. Instead bracket notation accept variables

1 Like

dot notation can ONLY be used with identifiers(i.e. words that are used for variable names, keywords in the language, etc). bracket notation does not work with identifiers but it works for everything else (i.e. variables, expressions that need to be evaluated, strings, etc.). This is because the everything in the brackets is evaluated (i.e. unpack) before the engine starts searching the object.

2 Likes

Thank you for explaining!

Thank you for taking time out to explain!