Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
## Type Conversion - Number and String
1. The `+` operator when used as a unary operator always converts its operand to a `number`.
2. 2. Using the unary `+` operator on a value is functionally equivalent to casting the value using the `Number()` function.
1. `+new Date === Number(new Date); // true`
```javascript
console.log(+'100'); // 100
console.log(+null); // 0
console.log(+void 0); // NaN
console.log(+true); // 1
console.log(+false); // 0
console.log(+[]); // 0
console.log(+[100]); // 100
console.log(+[100, 50]); // NaN
console.log(+{}); // NaN
console.log(+new Date); // 1527790306576
```
1. The `+` operator can also be used to convert values to `string`. Concatenate an empty string(`''`) to any value using the `+` operator to convert the value to a `string`.
2. Using the `+` operator to convert values to `string` is functionally equivalent to casting values to string using the `String()` function.
1. `([100, 50] + '') === String([100, 50]); // true`
```javascript
console.log(100 + ''); // "100"
console.log(null + ''); // "null"
console.log(void 0 + ''); // "undefined"
console.log(true + ''); // "true"
console.log(false + ''); // "false"
console.log([] + ''); // ""
console.log([100] + ''); // "100"
console.log([100, 50] + ''); // "100,50"
console.log({} + ''); // "[object Object]"
console.log(new Date + ''); // "Thu May 31 2018 19:28:09 GMT+0100 (WAT)"
```
## Short-Circuiting
1. The logical `&&` short-circuiting is commonly used as a replacement for very simple `if` statements
2. *The logical `&&` operator returns the first operand if it is falsy, otherwise it returns the second operand.*
```javascript
if (person) {
fetchProfile(person);
}
// METHOD 2: Using short-circuiting
person && fetchProfile(person);
```
1. Note that using short-circuiting actually returns a value since it is a JavaScript expression. Hence, the result of a short-circuiting operation can be stored in a variable or used anywhere JavaScript expects a value.
```javascript
var personProfile = person && fetchProfile(person);
```
1. The logical `||` operator returns the first operand if it is `truthy`, otherwise it returns the second operand.
2. The logical `||` short-circuiting is commonly used when assigning fallback values to local variables
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.