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

Conner Wells
Conner Wells
5,822 Points

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'

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

for (key in shanghai) {
  console.log(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

R S
R S
2,225 Points

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
seal-mask
.a{fill-rule:evenodd;}techdegree
Jelena Feliciano
Full Stack JavaScript Techdegree Student 3,251 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]); }