evt =(evt)的含义?evt:window.event

ame*_*esh 2 javascript javascript-events

嗨,这个javascript片段意味着什么.(evt)部分是如此令人困惑.. evt不是布尔值.这个怎么运作?

function checkIt(evt) {
        evt = (evt) ? evt : window.event
        var charCode = (evt.which) ? evt.which : evt.keyCode

    }
Run Code Online (Sandbox Code Playgroud)

Ble*_*der 8

evt = (evt) ? evt : window.event只是内联if语法.它相当于这段代码:

if (evt) {
    evt = evt;
} else {
    evt = window.event;
}
Run Code Online (Sandbox Code Playgroud)

如果evt是真的,evt将会一个人留下.如果evt不是真的,它将被替换为window.event.