Salesforce JavaScript Developer Practice Exam

Question: 1 / 400

What will the output be after running this code: (() => { let x, y; try { throw new Error(); } catch (x) { (x = 1), (y = 2); console.log(x); } console.log(x); console.log(y); })();?

1 undefined 2

The output of the provided code comes down to understanding scoping and variable shadowing in JavaScript, especially within the context of `try-catch` blocks.

When the code is executed, the immediate function begins by declaring the variables `x` and `y` using the `let` keyword, which introduces block scope.

Then, the code enters a `try` block and deliberately throws an error, which is caught by the `catch` block. In the `catch` block, the parameter `x` is created, shadowing the outer `x` declared in the function scope. This means that within the `catch` block, the `x` that refers to the error object is different from the `x` declared outside of it.

Inside the `catch`, `x` is assigned the value `1`, but this does not affect the outer `x`. On the other hand, `y` is assigned the value `2`, which is applicable to the outer scope since it was declared outside of the `catch` block.

The following logs happen after the `catch` block:

1. `console.log(x);` will output `1` because within the scope of the `catch`, the shadowed `x`

Get further explanation with Examzify DeepDiveBeta

undefined undefined undefined

1 1 2

1 undefined undefined

Next Question

Report this question

Subscribe

Get the latest from Examzify

You can unsubscribe at any time. Read our privacy policy