
Anthony Truby
2,840 Points'for in' loop task. global property forbidden?
What am i doing wrong here? I thought i was doing exactly what was just described to me, but no matter what i change 'prop' to, e.g. cace, it comes up with error about strict mode and the global property 'prop' or 'cace'? Thanks
var shanghai = {
population: 14.35e6,
longitude: '31.2000 N',
latitude: '121.5000 E',
country: 'CHN'
};
for (prop in shanghai){
console.log(prop);
};
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JavaScript Objects</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>
1 Answer

Steven Parker
205,164 PointsYou need to use "var" or "let" to explicitly declare the loop variable:
for (let prop in shanghai) {
If you don't declare a loop variable, it is implicitly global.

Anthony Truby
2,840 PointsKnew it would be something simple, thanks man!
Anthony Truby
2,840 PointsAnthony Truby
2,840 PointsI changed 'prop' to 'fshss'....
Bummer: There was an error with your code: ReferenceError: Strict mode forbids implicit creation of global property 'fshss'
Surely 'fshss' isn't a global property? what am i missing? ha