Note that, in this example, we chose to repeat the same action for 11 and 13: omitting
the newline is clearest when cases have single statements and no fall-through
execution.
switch
statements are extremely handy when you want to take many different paths
based on a single expression. That said, you will find yourself using them less once
you learn about dynamic dispatch in
.
for...in loop
The
for...in
loop is designed to loop over the property keys of an object. The syntax
is:
for(variable in object)
statement
Here is an example of its use:
const
player
=
{
name
:
'Thomas'
,
rank
:
'Midshipman'
,
age
:
25
};
for
(
let
prop
in
player
) {
if
(
!
player
.
hasOwnProperty
(
prop
))
continue
;
// see explanation below
console
.
log
(
prop
+
': '
+
player
[
prop
]);
}
Don’t worry if this seems confusing now; we’ll learn more about this example in
. In particular, the call to
player.hasOwnProperty
is not required, but its
omission is a common source of errors, which will be covered in
. For now,
all you need to understand is that this is a type of looping control flow statement.
for...of loop
New in ES6, the
for...of
operator provides yet another way to loop over the ele‐
ments in a collection. Its syntax is:
for(variable of object)
statement
The
for...of
loop can be used on arrays, but more generically, on any object that is
iterable (see
). Here is an example of its use for looping over the contents of
an array:
const
hand
=
[
randFace
(),
randFace
(),
randFace
()];
for
(
let
face
of
hand
)
console.log(
`You rolled...
${
face
}
!`
);
for...of
is a great choice when you need to loop over an array, but don’t need to
know the index number of each element. If you need to know the indexes, use a regu‐
lar
for
loop:
Control Flow Statements in JavaScript | 75