Prepare for the Salesforce JavaScript Developer Exam. Utilize comprehensive quizzes, flashcards, and multiple choice questions with hints and explanations. Boost your exam readiness!

Practice this question and more.


What will be the output when executing this code? let x = 10; const test = (y = (x += 10)) => y; console.log(test());

  1. 10

  2. 20

  3. 30

  4. NaN

The correct answer is: 20

The code snippet initializes a variable `x` with the value `10`. The function `test` is defined as an arrow function that takes one parameter `y`. If no argument is passed when `test` is called, `y` will be assigned the result of the expression `(x += 10)`. The expression `x += 10` increments the value of `x` by `10`, changing `x` from `10` to `20`. Since `test()` is called without an argument, the default parameter `y` gets the value of `x`, which is now `20`. The function then returns `y`, which is also `20`. Thus, when `console.log(test())` is executed, it outputs `20`. The logic of how default parameters work in conjunction with variable updates here is key, as it demonstrates the order of operations and the implications of mutating the value of a variable within the context of a function call.