Created
July 4, 2019 11:36
-
-
Save myfonj/d4b3edb2b1cd730b30d5634f10eba7f9 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* @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