Sök på tekniken.nu

Om tekniken.nu

På tekniken.nu bloggar Iteams konsulter om det som ligger dem varmast om hjärtat - teknik.
www.iteam.se

Prenumerera på tekniken.nu

Bloggportalen.se
Bloggtoppen.se
Top Datorer bloggar
Web Analytics

Clicky

En självklarhet!
Teknikbloggen logotype

Behöver man skriva !! för att hantera en bool i Javascript?

2011-12-01 15:00 - Utvecklingstips av Christian Landgren
Christian Landgren
Christian Landgren
Systemutvecklare
Iteam

Svaret är nej (i 99% av fallen)

Många använder !! för att konvertera om en sträng till en bool i if-satser men det är inte nödvändigt för Javascript hanterar bool convertering i sig självt. !! är egentligen ingen egen operator utan endast två ! efter varandra. Dvs !true är false och !!true är true. Dock är syntaxen väldigt svårtolkad och eftersom den är onödig rekommenderar jag inte att man använder den alls.

Dvs du behöver inte skriva:

if (!!user.password) return true;

det räcker med

if (user.password) return true;

Det finns dock ett fall där det är bra att konvertera en sträng till en bool och det är om du behöver skapa en ny variabel som innehåller en bool flagga:

var hasPassword = user.password;

alert(hasPassword) // skriver ut lösenordet

I detta fall skulle det vara önskvärt att byta till:

var hasPassword = !! user.password;

alert(hasPassword) // skriver true

Eller nästan ännu hellre vända på problemet

var hasEmptyPassword = ! user.password;

alert(!hasEmptyPassword) // skriver true

Eller:

var hasPassword = Boolean(user.password);

alert(!hasPassword) // skriver true

Läs fler reaktioner på detta:

http://stackoverflow.com/questions/784929/what-is-the-operator-in-javascript

Och tester på vilka värden som hanteras på vilket sätt med !!:

http://jibbering.com/faq/notes/type-conversion/

... och du vet väl att Iteam just nu söker duktiga medarbetare? Läs mer på iteam.se

Andra bloggar om:
Inga kommentarer

Kommentera

Namn

Email

URL

Kommentar

Skriv vad som står i bilden till höger