! preceding function in javascript? [duplicate]

Possible Duplicate:
What does the exclamation mark do before the function?

I saw a function formatted like this today for the first time:


What is the preceding exclamation mark for? I assume it functions the same as:


But... what's going on here?



The preceding ! takes the un-parseable statement, and allows it to to be parsed by the JS engine, which in turn returns true.

SyntaxError: Unexpected token (


It simply makes the JavaScript parser parse it as an expression, which is necessary to execute it.


I've tried it, it returned true. The function returns undefined, and !undefined is true.

^          ^ ^
C          A  B
  • A. function(){} is an empty anonymous function
  • B. () executes the function (A), returning undefined
  • C. ! negates undefined, which becomes true

I think they used that trick for a code golf or an obfuscated code. It is a bad practice to practially use that

Try javascript:alert(!function(){}()) in your browser address bar


Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.