Javascript 有人能解释一下下面的说法吗

Javascript 有人能解释一下下面的说法吗,javascript,Javascript,我的疑问是: var k=事件?event.which:window.event.keyCode 我对上述说法感到困惑。有一件事是可以肯定的,上面的声明只用于事件验证..我没有得到解释..有人能帮我找出上面的声明的实际作用吗??是否仅在JAVASCRIPT中寻求简短的解释k=event?event.which:window.event.keyCode 表示您是否将事件变量传递给函数并使用它;Else-使用全局事件 它是三元运算符,可以扩展为 <script> function

我的疑问是: var k=事件?event.which:window.event.keyCode

我对上述说法感到困惑。有一件事是可以肯定的,上面的声明只用于事件验证..我没有得到解释..有人能帮我找出上面的声明的实际作用吗??是否仅在JAVASCRIPT中寻求简短的解释

k=event?event.which:window.event.keyCode

表示您是否将事件变量传递给函数并使用它;Else-使用全局事件

它是三元运算符,可以扩展为

<script>
    function AvoidSpace(event) {
        var k = event ? event.which : window.event.keyCode;
        if (k >= 42 && k <= 57 || k == 32 || k == 61 || k == 13) return false;
    }

    function ExceptNumber(event) {
        var k = event ? event.which : window.event.keyCode;
        if (k >= 0 && k <= 47 || k >= 58 && k <= 122) return false;
    }

    function NumChar(event) {
        var k = event ? event.which : window.event.keyCode;
        if (k >= 0 && k <= 31 || k >= 33 && k <= 64 || k >= 91 && k <= 96) return false;
    }

    function clearFunction() {
        document.getElementById('register').reset();
    }
</script>
它将返回被按下的键的整数值;键代码

k=事件?event.which:window.event.keyCode

表示您是否将事件变量传递给函数并使用它;Else-使用全局事件

它是三元运算符,可以扩展为

<script>
    function AvoidSpace(event) {
        var k = event ? event.which : window.event.keyCode;
        if (k >= 42 && k <= 57 || k == 32 || k == 61 || k == 13) return false;
    }

    function ExceptNumber(event) {
        var k = event ? event.which : window.event.keyCode;
        if (k >= 0 && k <= 47 || k >= 58 && k <= 122) return false;
    }

    function NumChar(event) {
        var k = event ? event.which : window.event.keyCode;
        if (k >= 0 && k <= 31 || k >= 33 && k <= 64 || k >= 91 && k <= 96) return false;
    }

    function clearFunction() {
        document.getElementById('register').reset();
    }
</script>
它将返回被按下的键的整数值;键代码

此语法:

if (event == true) {
    k = event.which;
} else {
    k = window.event.keyCode;
}
被称为三元运算符。如果表达式为true,则返回值1,否则返回值2。在这种情况下,对象事件用作表达式,因此它将计算它是否不存在null。

此语法:

if (event == true) {
    k = event.which;
} else {
    k = window.event.keyCode;
}
expression ? value1 : value2;
被称为三元运算符。如果表达式为true,则返回值1,否则返回值2。在这种情况下,对象事件被用作表达式,因此它将计算它是否不存在null

expression ? value1 : value2;
这是一个三元运算符。如果问号前的事物为true或truthy,则返回冒号前的表达式;如果为false或false,则返回后面的表达式

如果定义了事件,即,它被传递到函数中,它将是truthy,这意味着如果作为布尔值进行计算,则它是true,即使它不是布尔类型

这样做的目的是检查事件是否传递到函数中,并将k设置为event.which,如果传递到函数中,则设置为导致事件的键代码,否则设置为全局窗口事件中的键代码作为回退

这是一个三元运算符。如果问号前的事物为true或truthy,则返回冒号前的表达式;如果为false或false,则返回后面的表达式

如果定义了事件,即,它被传递到函数中,它将是truthy,这意味着如果作为布尔值进行计算,则它是true,即使它不是布尔类型


这样做的目的是检查事件是否传递到函数中,并将k设置为event.which,如果传递到函数中,则设置为导致事件的键代码,否则设置为全局窗口事件中的键代码作为回退

一些浏览器使用keyCode,其他浏览器使用which。
该指令仅用于跨浏览器问题,并用于在按键和按键事件期间检索按键代码

一些浏览器使用按键代码,其他浏览器使用按键代码。
该指令仅用于跨浏览器问题,用于在按键和按键事件期间检索按键代码

,还有,先生,还有一个小问题..我可以知道event.which在这里做什么吗?event.which返回按下的按键代码,如图所示@ManojKarthikif event==true{不正确。应该是if event{.Yours将始终为false。@斜视原因?它不是==,只是==所以事件将被转换为布尔值。或者我遗漏了什么?@Justinas:The==不会转换为布尔值。它遵循一种类型强制的有点复杂的递归算法,通常将两个操作数都转换为数字。您可以用一个简单的test console.log验证这一点{foo:bar}==true;//falseSir,还有一个小问题..我可以知道event.which在这里做什么吗?event.which返回按下的键码,如这里所示@ManojKarthikif event==true{不正确。应该是if event{.Yours将始终为false。@斜视原因?它不是==,只是==所以事件将被转换为布尔值。或者我遗漏了什么?@Justinas:The==不会转换为布尔值。它遵循一种类型强制的有点复杂的递归算法,通常将两个操作数都转换为数字。您可以用一个简单的test console.log验证这一点{foo:bar}==true;//false