Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
I misunderstand why the following code outputs -1 in console. x = 42; x = (x == 42) * -1 + (x != 42) * x; -1 Due to Type Coercion, the comparison of x to 42 yields true and is thus transl...
#4: Post edited
Type coercion with both true and false in JavaScript
- Explaining the result of an arithmetic expression in JavaScript
#3: Post edited
Type coercion with both true and false in JavaScript
I misunderstand why the following code outputs -1 in console. ```javascript x = 42; x = (x == 42) * -1 + (x != 42) * x; ``` > -1 Due to [Type Coercion](https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion), the comparison of x to 42 yields `true` and is thus translated to `1`. So `1 * -1` yields `-1`. Now, `(x != 42)` which is `false` yields `0` so I have expected to get in console > -42 Because `-1 + 0 * 42 MEANS -42`. So why did I get `-1` in the end?
#2: Post edited
- I misunderstand why the following code outputs -1 in console.
- ```javascript
- x = 42;
- x = (x == 42) * -1 + (x != 42) * x;
- ```
- > -1
- Due to [Type Coercion](https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion), the comparison of x to 42 yields `true` and is thus translated to `1`.
- So `1 * -1` yields `-1`.
Now, to `(x != 42)` which is `false` yields `0` so I have expected to get in console- > -42
- Because `-1 + 0 * 42 MEANS -42`.
- So why did I get `-1` in the end?
- I misunderstand why the following code outputs -1 in console.
- ```javascript
- x = 42;
- x = (x == 42) * -1 + (x != 42) * x;
- ```
- > -1
- Due to [Type Coercion](https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion), the comparison of x to 42 yields `true` and is thus translated to `1`.
- So `1 * -1` yields `-1`.
- Now, `(x != 42)` which is `false` yields `0` so I have expected to get in console
- > -42
- Because `-1 + 0 * 42 MEANS -42`.
- So why did I get `-1` in the end?
#1: Initial revision
Type coercion with both true and false in JavaScript
I misunderstand why the following code outputs -1 in console. ```javascript x = 42; x = (x == 42) * -1 + (x != 42) * x; ``` > -1 Due to [Type Coercion](https://developer.mozilla.org/en-US/docs/Glossary/Type_coercion), the comparison of x to 42 yields `true` and is thus translated to `1`. So `1 * -1` yields `-1`. Now, to `(x != 42)` which is `false` yields `0` so I have expected to get in console > -42 Because `-1 + 0 * 42 MEANS -42`. So why did I get `-1` in the end?