js基本数据类型和转换

文章目录

7种基本数据类型
  • Object 对象 包括狭义的对象Object、数组Array和函数Function。
  • Boolean 布尔值
  • Undefined 未定义的值,表示未赋值的初始化值
  • Null 空值
  • String 字符串类型
  • Number 数字类型
  • symbol
特殊的number类型

Infinity 表示无穷大特殊值
NaN            特殊的非数字值
Number.MAX_VALUE     可表示的最大数字
Number.MIN_VALUE     可表示的最小数字(与零最接近)
Number.NaN         特殊的非数字值
Number.POSITIVE_INFINITY 表示正无穷大的特殊值
Number.NEGATIVE_INFINITY 表 示负无穷大的特殊值
JS内置了isNaN()函数,来确定数值是不是NaN类型。
注意:NaN ①任何涉及NaN的操作都会返回NaN。②NaN对任何值都不相等,包括NaN本身

isNaN() 函数用于检查其参数是否是非数字值。

isNaN()函数对参数的转换

  • 引用数据类型 object, 先通过 toString 方法转化成字符串,再通过 Number 方法转化成数字类型
  • 其他基本类型 直接使用 Number 方法转化成数字类型
isNaN(NaN);       // true

isNaN(true);      // false		Number(true)	//1
isNaN(false);     // false		Number(false)	//0

isNaN(37);        // false
isNaN('37');      // false

isNaN(null);       // false		Number(null)	//0
isNaN(undefined);  // true		Number(undefined)	//NaN

isNaN({});        // true
isNaN([12,34]);   // true	
[12, 34].toString()	//12,34			Number('12, 34')  //NaN
布尔值为false的6种情况

Boolean对象只有两种取值,true或者false

  • undefined
  • 0或者NaN
  • null
  • false(布尔值的false,字符串"false"布尔值为true)
  • ''或"" 空字符串,中间有空格是true
console.log(Boolean('false')) //true
console.log(Boolean(false)) //false
console.log(Boolean(''))//false
console.log(Boolean(' '))//true
基本数据类型的转换
  1. 主动转换
  • 转为number类型
      parseInt()或者parseFloat()
  • 转为String类型
      String()或者toString(),区别在于前者可以转换任意类型的数据,后者不能转换null和undefined
  • 转为boolean类型
      Boolean()
  1. 自动转换
  • 比较运算(==、!=、>、<)、if、while需要布尔值地方
  • 算术运算(+、-、*、/、%)
      + 会自动转为字符串,其他运算符会转为number类型
typeof 检测数据类型
  • 返回值是字符串(基本数据类型)。
  • 缺点:typeof在判断null、array、object以及函数实例(new + 函数)时,得到的都是object,不能进一步进行判断。
instanceof 检测是否为某个类的实例
  • 返回值为布尔值。
  • instanceof 代码形式为obj1 instanceof obj2(obj1是否是obj2的实例),obj2必须为对象,否则会报错
  • instanceof的判断逻辑: 从当前引用的proto一层一层顺着原型链往上找,能否找到对应的prototype。找到了就返回true
let arr = [12, 34]
console.log(typeof null)//object
console.log(typeof arr)//object

console.log(arr instanceof Array)//true
console.log(null instanceof Object) //false
上一篇:JS学习笔记:一切都是True


下一篇:怎样判断一个数据是 NaN