Friday 31 May 2019

javascript - Why console.log((!+[]+[]+![]).length) gives 9?

Answer


Answer





By what logic js works (!+[]+[]+![]).length returns 9? How is that possible?

As I know js has dynamic types cast but very hard to understand whats going on here





console.log((!+[]+[]+![]).length);




Answer



First we have to understand !+[]+[]+![]:




!+[] = !0 = true   
true+[] = "true"
![] = false
"true"+false = "truefalse"


so length of !+[]+[]+![] is length of "truefalse" so it's 9


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print &q...