一道前端js面试题function(a){ if(a>100){ }else if(a<=100){ }else{} }

新手上路,请多包涵
function(a){ 
  if(a>100){ 
    
  }else if(a<=100){ 
            
  }else{} 
}

问什么时候会跳到else里,要是不想跳到else里怎么办(typeof(a)===number)

阅读 2.4k
5 个回答

考虑NaN的情况

考虑特殊情况:NaNundefined不是纯数字的非空字符串

NaN > 100 // false
NaN <= 100 // false
null > 100 // false
null <= 100 // true
undefined > 100 // false
undefined <= 100 // false
'大家好' > 100 // false
'大家好' <= 100 // false
'hello' <= 10 // false
'hello' > 100 // false
'' > 100 // false
'' <= 100 // true
'a123' >100 // false
'a123' <= 100 // false
const a = NaN
function test(a){ 
  if(a>100){ 
    
  }else if(a<=100){ 
            
  }else{
      console.log('a is NaN')  
  } 
}
test(a) // a is NaN

不是数字的情况

defineProperty get 被调用的时候,a 的值变化了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题