Can someone give me an explanation of the following line:

Assuming a function like:

function mouseUp(ev)

What does this line mean:

ev = ev || window.event;

A lot of code snippets I see have an event variable as an argument to some event-based function, like mouseUp, mouseMove, or whatever.  But the event variable is never actually passed to the function - it's simply stated as an argument to the function, so essentially that means it would be undefined.

So, what does ev = ev || window.event mean?  It seems like this line tries to set ev to its own value, which is undefined, or to the value of window.event.  What does this line achieve?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

For browsers other than IE, when a DOM event occurs, it calls the handler of that event (if any), and pass to this handler the event object.
In IE, it is not the case. In this browser, you acces the event object not through the argument of the function but with window.event object.
That's why you see this code. It's for cross browser compatibility.
In IE, the variable ev will be initialized with window.event. In other browsers like FF, it will use the argument passed to the function.

Hope am clear ;)

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.