检查是否是number类型,自动转换string类型

  1. //
  2. module.exports = function isNumber (num) {
  3. // transform to number
  4. const number = +num
  5. // console.log(num, number)
  6. /**
  7. * Discard Infinity and NaN
  8. * Infinity,+Infinity,-Infinity => number - number = NaN
  9. * NaN => number - number = NaN
  10. * 这是不能通过number === number来判断,Infinity等于自身不符合。
  11. */
  12. if ((number - number) !== 0) {
  13. return false
  14. }
  15. if (typeof num === 'string') {
  16. /**
  17. * ' '
  18. * '\r\n\t'
  19. */
  20. if (number === 0 && num.trim() === '') {
  21. return false
  22. }
  23. return true
  24. }
  25. return true
  26. }