TL;DR answer sheet
JavaScript Guess the Output #1 — quiz answer sheet, click to expand.
1. console.log(!![])
Answer: true
Explanation: An empty array is a truthy value in JavaScript. The double negation converts it to a boolean, resulting in true.
2. console.log(0.1 + 0.2 === 0.3);
Answer: false
Explanation: Due to floating-point arithmetic limitations in computer systems, 0.1 + 0.2 does not equal 0.3 exactly, but rather 0.30000000000000004.
3. const arr = [1, 2, 3];
arr[100] = 4;
console.log(arr.length);
Answer: 101
Explanation: JavaScript arrays are sparse, meaning that you can set an index that is greater than the current length of the array. The length property will then reflect the highest index + 1.
4. console.log(typeof null)
Answer: object
Explanation: null is considered an object due to a historical bug that has never been fixed duo to backward compatibility
5. function func(a, b = '', c, ...rest) {}
console.log(func.length);
Answer: 1
Explanation: The length property of a function indicates the number of expected parameters before the first optional one, excluding rest parameters.
6. console.log(typeof NaN);
Answer: number
Explanation: NaN stands for 'Not a Number', but its type is actually 'number'.
7. console.log("10" - 5);
console.log("10" + 5);
Answer: 5 105
Explanation: Subtraction converts '10' to a number. The second operation is concatenation, which converts 5 to a string.
8. console.log([10, 2, 5, 1].sort());
Answer: [1, 10, 2, 5]
Explanation: The sort method sorts the array elements as strings in dictionary (ascending) order, so '10' comes before '2' and '5'.
9. for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1000);
}
Answer: 3 3 3
Explanation: The variable `i` is declared with var, which has function scope. By the time the setTimeout callback executes, `i` is 3. Replacing var with `let` gives `i` block-level scope, so each callback captures its own copy of `i`, logging the expected values: 0, 1, and 2.
10. let a = 5;
let b = a++ + ++a;
console.log(b);
Answer: 12
Explanation: The value of a is 5. a++ returns 5 and then increments a to 6. ++a increments a to 7 and returns 7. So, b = 5 + 7 = 12.
11. console.log("ba" + +"a" + "a");
Answer: baNaNa
Explanation: The unary plus operator tries to convert the string 'a' to a number, which results in NaN. So, the expression becomes 'ba' + NaN + 'a', which results in 'baNaNa'.
Similar Quizzes
Continue Reading

- 4 min read
Write Clean JavaScript Code: Essential Tips

- 2 min read