[英]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.