JavaScript JavaScript Loops, Arrays and Objects Tracking Data Using Objects Accessing All of the Properties in an Object

Conan Detective
Conan Detective
1,244 Points

My code works, but it keeps saying:Bummer: There was an error with your code: ReferenceError: Strict mode forbids implic

var shanghai = { population: 14.35e6, longitude: '31.2000 N', latitude: '121.5000 E', country: 'CHN' };

for (key in shanghai){ console.log(key,':',shanghai[key]); };

script.js
var shanghai = {
  population: 14.35e6,
  longitude: '31.2000 N',
  latitude: '121.5000 E',
  country: 'CHN'
};

for (key in shanghai){
  console.log(key,':',shanghai[key]);
};
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript Objects</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>

1 Answer

Victor Mercier
MOD
Victor Mercier
Treehouse Moderator 11,885 Points

Hi Conan, many students had the same problem you encounter, just add the let keyword inside the parenthesis and that is going to make your code working. It is not working because the code challenge uses the strict mode.

Here is a brief explanation of the strict mode : Strict Mode is a new feature in ECMAScript 5 that allows you to place a program, or a function, in a “strict” operating context. This strict context prevents certain actions from being taken and throws more exceptions. The statement “use strict”; instructs the browser to use the Strict mode, which is a reduced and safer feature set of JavaScript.

Here is my code:

for (var prop in shanghai) {
  console.log(prop);
}

Hope this helped and do not forget to mark as best answer!