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",
  result = lookup.val; //lookup[val];
  // Only change code above this line
  return result;

// Change this value to test

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/ Safari/537.36.

Link to the challenge:

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.


Thank you for explaining!

Thank you for taking time out to explain!