JS的数据类型

JS有两种数据类型:基本类型值引用类型值

一、基本类型值:
基本类型值指的是保存在栈内存中的简单数据段。基本类型的特点是基本类型的值是不可变的。

  • Undefined
    Undefined出现的场景有一下几种:
1 在使用var声明变量,但未对其加以初始化时,这个变量的类型就是undefined,且其默认初始化值为undefined
2 对未声明与初始化的变量,直接使用,那么这个变量的类型也是undefined,但是没有默认初始化值。
3 type test;//undefined  直接调用就会报错
4 函数没有return时,默认返回Undefined


  • Null
    null类型的默认值是null,表示一个空对象指针。
    如果定义的变量准备在将来用于保存对象,那么就该将该变量初始化为null。
    也可以用来清空事件或者清除定时器。
    typeof(Null)后是object
  • Boolean

    Boolean类型有两个值:true和false。Boolean()方法 可以转换其他数据类型为布尔值。
    具体的不同类型的转换,可以看下图:


  • Number
    Number可以分为整数和浮点数:
    整数: 可以通过10进制 8进制 16进制表示
    浮点数: 该数值必须包含一个小数点,小数点后面必须有一位数字,如果小数点后只有0,自动转换成整数。浮点数占据的空间内存是内存的两倍,极大极小的数字会用e科学表示法。
  • NaN
    1、NaN即非数值,是一个特殊的值,这个数值用于表示一个本来要返回数值的操作数,未返回数值的情况。比如任何数值除以0,本是不符合规范的,js里,这样的操作返回NaN(但是实际上,只有0除以0时返回NaN,其他则无穷值)。
    2、NaN有两个不同寻常的特点:任何涉及NaN的操作都会返回NaN,NaN值与任何值都不相等,包括本身
    3、isNaN()函数,这个函数可以判断,传递的参数是否“不是数值”这里涉及数值转换的问题,例如“10”这个字符串就可以转换为10,但是“blue”这个字符串则无法转换为数字,所以isNaN(“blue”)==true
    Number()函数,这个函数可以将的除了非纯数字字符串和undefined以外的任何类型转变为number类型。非纯数字字符串和undefined转化为NAN。
  • string
    string以’’或””引起来的一串字符。函数parseInt()、parseFloat()只用于字符串类型


    二、引用类型值:
    引用类型值是指的是那些保存在堆内存中的对象。意思是,变量中保存的实际上只是一个指针,这个指针执行内存中的另一个位置,由该位置保存对象。
    Array、function、object都是复杂的数据类型。
    typeof只能检测基础数据类型。
    http://wj1213180604.github.io/2015/12/01/JS%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B%E5%8F%8A%E7%B1%BB%E5%9E%8B%E8%BD%AC%E6%8D%A2/