js中的数据类型、类型检测、类型转换

js中的数据类型

在这里插入图片描述
number类型包括以下值:正数、负数、0、小数、NaN、infinity
注意:NaN(不是一个有效数字)、infinity(无穷大)是属于number类型

扩展:NaN和谁都不相等,包括它自己。即 NaN == 任何值 都为false
那如何判断一个数据是否为有效数字?
答案:使用 isNaN(值) 如果不是一个有效数字则为true,否则为false

类型检测

数据类型检测方法:

  • typeof: 检测数据类型的逻辑运算符
  • instanceof:检测是否为某个类的实例
  • constructor:检测构造函数
  • Object.prototype.toString.call: 检测数据类型

typeof检测:
写法:typeof 值
结果:返回的结果都是字符串,即 “数据类型”
局限性:

  • typeof null 结果为 “object”
  • typeof 不能细分对象类型(即普通对象{} 和数组[] 等都是"object")

类型转换

  • 强转换(基于底层机制转换):Number(值)
    一些隐式转换都是基于Number完成的,
    如:isNaN()、数学运算(如-)双等号(==)都会调用Number方法
  • 弱转换(基于一些额外的方法转换)parseInt()/parseFloat()

注:
(1)、Number()不要求传入的值一定是字符串,以下几个特殊值需记住:
在这里插入图片描述
如果传入的值是字符串,则必须保证值都是有效数字才会转换为数字,否则都是NaN
在这里插入图片描述
(2)、parseInt()、parseFloat()要求传入的值一定都是字符串,从字符串的左侧开始查找有效数字字符,遇到非有效数字字符则停止查找,并将之前转换的结果返回。
在这里插入图片描述
如果传入的值不是字符串,则会自动转换为字符串再开始查找。
parseInt()、parseFloat()两者区别在于能否识别小数点。

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页