JS-数据类型分类

232 阅读3分钟

一、基本数据类型(值类型)

1、数字

Number 整数 小数 NaN(not a number)
  Number  转化类型的规律 从左到右查看只要碰到非数字 结果就是NaN
  parseInt  过滤出整数  规律 从左向右查看 只要碰到非数字 及停止转换,若第一个就是非数字结果是NaN
         console.log(parseInt('12q12315'))  ==>//12
         console.log(parseInt('q12315'))    ==>// NaN
         console.log(parseInt('12.315'))    ==>//12
         parseFloat()  对小数点的处理
         console.log(parseFloat('12.3w'))   ==>//12.3
          Number('')  //0
          Number([])  //0   
          Number ([12,23])  //NaN   先把引用数字类型转换为字符串'12,13'  '12,13'转换为NaN
          Number(null)//0
          Number(undefind)//NaN
          Number(false)//0
          Number(true)//1
          Number({})//NaN
2. string
 //字符串拼接方式一
    var a = "hello";
    var b = "world";
    var c = a +' '+ b;  ==>  //'hello world'
 //字符串拼接方式二 : 反引号
         在反引号中  拼接变量 通过使用${变量名} 的方式 支持换行
         var a = 666;
         var  str = `hello  
           hi额hi嗯好IE
           ${a} world`
3. boolean
 boolean 布尔类型 只有两个值   true 、false
 boolean() 把其他数据类型转换为布尔类型
 0 NaN '' null  undefined  只有这个五个值转换为布尔结果是false  其他都是true
  **!是用来取反的,先用Boolean转成布尔类型,然后在去取反**

4. null undefined

 null 空指针,通过ID获取元素时会有
 undefined未定义,一个对象中欧没有对应的属性
 一个函数执行,不写return(或者写了return,但是后边没东西),那么函数的执行结果就是undefined 
 形参为负值是的默认值是undefined                     

二、引用数据类型

1、对象

 {属性名:属性值,属性名2:属性值2} 
 属性名 可以使单独的数字 但不能是 数字加+字母的形式  属性名的引号可以省略的
 堆内存 存储的引用数字类型
 JS 读取这段代码的时候 发现是一普通的对象  就会去堆内存中开一个新的空间
 然后把这对象中的键值对(属性名:属性值),挨个存储到 这个空间 然后把空间地址赋给  对应的变量xxx
 当我们使用xxx 这个变量时 浏览器发现它是一个地址,会自动把这个地址的内容返回当前使用的地方
 !!!调用地址中属性名的方式 console.log(per2.name)
 !!!调用地址中属性名对应的属性置的方式 console.log(per2['name'])
 !!!如果属性名是数字 查找属性名对应的属性值得的方式 console.log(per2[数字])

三、引用数据类型和基本数据类型的区别

 基本数据类型:Number、String、Boolean、Null、Undefined、Symbol(ES6)
     这些类型可以直接操作保存在变量中的实际值。基本数据类型是指存放在栈中的简单数据段,数据大小确定,
     内存空间大小可以分配,它们是直接按值存放的,所以可以直接按值访问
 引用数据类型:Object(在JS中除了基本数据类型以外的都是对象,数据是对象 函数是对象,正则表达式是对象) 
 都存放在堆内存中
 var a = [1,2,3,4,5];
 var b = a;//传址 ,对象中传给变量的数据是引用类型的,会存储在堆中;
 var c = a[0];//传值,把对象中的属性/数组中的数组项赋值给变量 存储在栈内存中
      ;改变栈中的数据不会影响堆中的数据
        alert(b);//1,2,3,4,5
        alert(c);//1  
        //改变数值 
        b[4] = 6;
        c = 7;
        alert(a[4]);//6
        alert(a[0]);//1