Skip to content

Instantly share code, notes, and snippets.

@myfonj
Created July 4, 2019 11:36
Show Gist options
  • Save myfonj/d4b3edb2b1cd730b30d5634f10eba7f9 to your computer and use it in GitHub Desktop.
Save myfonj/d4b3edb2b1cd730b30d5634f10eba7f9 to your computer and use it in GitHub Desktop.
/**
* @returns {"not empty string"|false}
*/
function stringOrFalse() {
return Math.random() > 0.5 ? 'not empty string' : false
}
var stringVar = 'aaa'
var booleanVar = true
var a = stringOrFalse()
if (a) {
stringVar = a // "not empty string"
} else {
booleanVar = a // false ---> | "not empty string" <--- !!
}
var b
if (b = stringOrFalse()) {
stringVar = b // ---> string | true <--- !!
} else {
booleanVar = b // ---> string | boolean <--- !!
}
var c = stringOrFalse()
if (c == false) {
booleanVar = c // false
} else {
stringVar = c // "not empty string"
}
var d = stringOrFalse()
if (typeof d == 'boolean') {
booleanVar = d // false
} else {
stringVar = d // "not empty string"
}
var e = stringOrFalse()
if (typeof e == 'string') {
stringVar = e // "not empty string"
} else {
booleanVar = e // false
}
var f = stringOrFalse()
if ( f === 'not empty string') {
stringVar = f // "not empty string"
} else {
booleanVar = f // false
}
var g = stringOrFalse()
if ( g === false) {
booleanVar = g // false
} else {
stringVar = g // "not empty string"
}
if ( stringOrFalse() ) {
stringVar = 'it was string' // sure it was
} else {
booleanVar = true // "not empty string"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment