String traversal means going through each character in a string one by one, usually from the first character to the last.
Click to reveal answer
beginner
How do you access the third character of a string str in JavaScript?
You use str[2] because string indexing starts at 0, so the third character is at index 2.
Click to reveal answer
beginner
What will console.log('hello'.length) print?
It will print 5 because the string 'hello' has 5 characters.
Click to reveal answer
intermediate
Why is it important to check string length before accessing characters by index?
Because accessing an index outside the string length returns undefined in JavaScript, which can cause errors in your program.
Click to reveal answer
intermediate
What is the difference between str.charAt(index) and str[index] in JavaScript?
str.charAt(index) returns an empty string if index is out of range, while str[index] returns undefined. Both access characters but behave differently for invalid indexes.
Click to reveal answer
What is the index of the first character in a JavaScript string?
A-1
B1
C0
DDepends on the string
✗ Incorrect
JavaScript strings are zero-indexed, so the first character is at index 0.
What will 'world'[5] return?
Aundefined
Bw
Cd
DError
✗ Incorrect
The string 'world' has length 5, so index 5 is out of range and returns undefined.
Which method returns the length of a string?
Astr.size()
Bstr.length()
Cstr.count()
Dstr.length
✗ Incorrect
str.length is a property that gives the number of characters in the string.
How can you loop through each character of a string str?
Afor (let i = 1; i <= str.length; i++) { /* access str[i] */ }
Bfor (let i = 0; i < str.length; i++) { /* access str[i] */ }
Cwhile (str.length) { /* access str[i] */ }
Dstr.forEach(char => { /* ... */ })
✗ Incorrect
The correct way is to loop from 0 to str.length - 1 and access characters by index.
What does str.charAt(index) return if index is out of range?
AEmpty string ''
Bundefined
Cnull
DThrows an error
✗ Incorrect
charAt returns an empty string if the index is invalid.
Explain how to traverse a string and access each character in JavaScript.
Think about using a for loop and accessing characters by index.
You got /3 concepts.
Describe the difference between accessing characters using bracket notation and charAt method.
Focus on what happens when the index is out of range.
You got /3 concepts.
Practice
(1/5)
1. What does the expression str[2] return when str = "hello"?
easy
A. The first character of the string, which is 'h'
B. The third character of the string, which is 'l'
C. The length of the string, which is 5
D. An error because strings cannot be accessed by index
Solution
Step 1: Understand zero-based indexing in strings
Strings in JavaScript start counting characters from index 0, so index 2 is the third character.
Step 2: Identify the character at index 2 in "hello"
The characters are: h(0), e(1), l(2), l(3), o(4). So index 2 is 'l'.
Final Answer:
The third character of the string, which is 'l' -> Option B
Quick Check:
str[2] = 'l' [OK]
Hint: Remember string indexes start at 0, so 2 means third character [OK]
Common Mistakes:
Thinking index 2 is the second character
Confusing string length with character access
Believing strings can't be indexed like arrays
2. Which of the following is the correct syntax to loop through each character of a string text in JavaScript?
easy
A. for (let i = 0; i < text.length; i++) { console.log(text[i]); }
B. for (let char of text) { console.log(text[char]); }
C. for (let i = 1; i <= text.length; i++) { console.log(text[i]); }
D. for (let i = 0; i < text.length; i++) { console.log(text.charAt(i+1)); }
Solution
Step 1: Check the loop range and indexing
The loop should start at 0 and go up to less than text.length to cover all characters.
Step 2: Verify character access inside the loop
Accessing characters by text[i] is correct. for (let i = 0; i < text.length; i++) { console.log(text[i]); } uses this correctly.
Final Answer:
for (let i = 0; i < text.length; i++) { console.log(text[i]); } -> Option A
Quick Check:
Loop from 0 to length-1 and access text[i] [OK]
Hint: Loop from 0 to length-1 and use text[i] to access chars [OK]
Common Mistakes:
Starting loop at 1 instead of 0
Using text[char] when char is a character, not index
Accessing index i+1 causing off-by-one errors
3. What will be the output of the following code?
const s = "world";
let result = "";
for (let i = 0; i < s.length; i++) {
if (i % 2 === 0) {
result += s[i];
}
}
console.log(result);
medium
A. "wrd"
B. "wolrd"
C. "orld"
D. "wrld"
Solution
Step 1: Understand the loop and condition
The loop goes from 0 to 4 (length 5). It adds characters at even indexes (0,2,4) to result.
Step 2: Identify characters at even indexes
Index 0: 'w', 2: 'r', 4: 'd'. So result becomes "wrd".
Final Answer:
"wrd" -> Option A
Quick Check:
Characters at even indexes = "wrd" [OK]
Hint: Pick characters where index % 2 is zero [OK]
Common Mistakes:
Including characters at odd indexes
Confusing index positions with characters
Appending characters incorrectly
4. The following code is intended to print each character of word on a new line, but it prints an extra undefined. What is the problem?
const word = "test";
for (let i = 0; i <= word.length; i++) {
console.log(word[i]);
}
medium
A. Strings cannot be accessed by index in JavaScript
B. console.log cannot print string characters
C. The variable i is not declared
D. The loop condition should be i < word.length instead of <=
Solution
Step 1: Analyze the loop condition
The loop runs from i = 0 to i = word.length (which is 4). Index 4 is out of bounds for string indices 0-3.
Step 2: Identify the fix
Change the condition to i < word.length to avoid accessing undefined index.
Final Answer:
The loop condition should be i < word.length instead of <= -> Option D
Quick Check:
Loop must stop before length to avoid undefined index [OK]
Hint: Use i < length not <= to avoid out-of-bounds [OK]
Common Mistakes:
Using <= instead of < in loop condition
Thinking strings can't be indexed
Ignoring off-by-one errors
5. Given a string inputStr, which code snippet correctly reverses the string by traversing it from the end to the start?
hard
A. let reversed = '';
for (let i = inputStr.length; i > 0; i--) {
reversed += inputStr[i];
}
B. let reversed = '';
for (let i = 0; i < inputStr.length; i++) {
reversed += inputStr[inputStr.length - i];
}
C. let reversed = '';
for (let i = inputStr.length - 1; i >= 0; i--) {
reversed += inputStr[i];
}
D. let reversed = '';
for (let i = inputStr.length - 1; i > 0; i--) {
reversed += inputStr[i];
}
Solution
Step 1: Understand string indexing and loop bounds
String indices go from 0 to length-1. To reverse, start at length-1 down to 0 inclusive.
Step 2: Check each option's loop and indexing
let reversed = '';
for (let i = inputStr.length - 1; i >= 0; i--) {
reversed += inputStr[i];
} loops from length-1 to 0 inclusive and appends characters correctly. Others have off-by-one errors or wrong indices.
Final Answer:
let reversed = '';
for (let i = inputStr.length - 1; i >= 0; i--) {
reversed += inputStr[i];
} -> Option C
Quick Check:
Loop backward from last index to 0 and append chars [OK]
Hint: Loop backward from length-1 to 0 and append characters [OK]
Common Mistakes:
Using wrong loop bounds causing missing first/last char
Accessing index equal to length (out of bounds)
Stopping loop before reaching index 0
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.