JS中的Number数据类型详解

Number数据类型

Number类型使用IEEE754格式来表示整数和浮点值,这也是0.2 + 0.3不等于0.5的原因,

最基本的数值类型字面量格式是十进制整数

var a = 10;

1. 浮点数值

2. NaN

Not a Number:不是一个数,但它属于数值类型

NaN的特点

  • NaN和任何值进行操作都会返回NaN
  • NaN与任何值都不相等,包括NaN本身
console.log(NaN == NaN)

3. isNaM函数

用于检测一个变量不是数值(Number)类型。isNaN()接收一个参数,这个参数可以是任何类型,这个函数会尝试把传入的参数转换为数值,某些不是数值的值会直接转换成数值,例如字符串"10"Boolean值,不能转换为数值的值返回true,能转换的返回false

console.log( isNaN(NaN ) // true 
console.log( isNaN(10 ) // false
console.log( isNaN('10') // false
console.log( isNaN('blue') // true
console.log(isNaN( true )) // false (true会被转换成1)

总结:

  • isNaN意思是:是不是非数值,是的话返回true,所有能被该函数转换能Number类型的值,都返回false
  • 在使用isNaN进行检测的时候,首先会验证检测的值是否为数字类型,如果不是,先基于Number()这个方法,把值转换成数字类型,然后再检测
  • 空字符串、空数组、布尔值、null会转成数值,所以isNaN函数返回false
  • 空对象、函数、undefined不能转换成数值,返回true

4. 数值转换

把非数值值转换为数值:

  • Number()
  • parseInt() 取整
  • parseFloat()

Number()转换规则:

  • 如果是布尔值,truefalse会被转换为10
Number(true) // 1
Number(false) // 0
  • 如果是数字,只是简单的传入和返回
Number(1) // 1
Number(100) // 100
  • 如果是null值,返回0
Number(null) // 0
  • 如果是undefined,返回NaN
Number(undefined) // NaN
  • 如果是字符串:
    • 字符串中只包含数字(包括政府)

猜你喜欢

转载自www.cnblogs.com/dobeco/p/11619100.html