簡體   English   中英

JavaScript中的多個邏輯運算符

[英]Multiple Logical Operators in javascript

我要檢查以下內容

1:是xa號
2.如果x小於5或大於15,則發出聲音警報3.如果一切正常,請callMe()

var x = 10;
if (isNaN(x) && ((x < 5) || (x > 15))) {
alert('not allowed')
}
else
{
callMe();
}

我究竟做錯了什么?

var x = 10;
if (isNaN(x) || (x < 5) || (x > 15)) {
    alert('not allowed')
}
else
{
    callMe();
}

這樣,如果x不是數字,則直接進入警報。 如果是數字,則轉到下一個檢查(x <5),依此類推。

關於&& vs ||的所有其他答案 是正確的,我只想添加另一件事:

isNaN()函數僅檢查參數是否為常數NaN 它不會檢查參數是否實際為數字。 所以:

isNaN(10) == false
isNaN('stackoverflow') == false
isNaN([1,2,3]) == false
isNaN({ 'prop' : 'value'}) == false
isNaN(NaN) == true

換句話說,您不能使用它來檢查給定變量是否包含數字。 為此,我建議首先根據您期望的值通過parseInt()parseFloat()運行變量。 在那之后檢查isNaN() ,因為這些函數僅返回數字或NaN 同樣,這將確保如果您有數字字符串,那么也將其視為數字。

var x = 10;
if (isNaN(x) || (x < 5) || (x > 15)) {
    alert('not allowed')
}
else
{
    callMe();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM