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

Why can't I name the first part of this for-in loop "key"?

This is the error I keep getting: ReferenceError: Strict mode forbids implicit creation of global property 'key'

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

for (key in shanghai) {
<!DOCTYPE html>
  <meta charset="utf-8">
  <title>JavaScript Objects</title>
<script src="script.js"></script>

1 Answer

The "key" variable was never declared. You need to declare it before you use it. Variable can be declared with const, let, or var

Jelena Feliciano
Jelena Feliciano
Full Stack JavaScript Techdegree Student 10,109 Points

That was not given in this example on the video.

Example of a for-in loop: var person = { name : 'Sarah', country : 'US', age : 35, treehouseStudent : true, skills : ['JavaScript', 'HTML', 'CSS'] };

for (prop in person){ console.log(prop, ': ', person[prop]); }