数据类型的整理总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihuijuan_1/article/details/86586175

一,数据类型

  • 1)基本数据类型(5):number,boolean,string,undefind,null
  • 2)引用数据类型:function ,array,date
  • 3) 复杂数据类型(1):object

二,基本数据类型和引用数据类型的区别

  • 1)基本数据类型☞简单的数据段,按值访问,直接操作实际值
      引用数据类型☞ 由多个值组成的对象
     将一个变量赋值给另一个对象的时候,解析器首先判断的是这个对象的数据类型
  • 2)基本数据类型 栈内存
var a=10;
var b=a;
    b=20;
console.log(a) //10

b只是保存了a的一个副本,所以b改变,a没影响
引用数据类型

var obj1=new Object()
var obj2=obj1;
    obj2.name="li"
    console.log(obj1.name) //li

两个数据类型指向了同一个堆内存对象,obj1赋值给obj2,实际上是将地址给了obj1
在这里插入图片描述

  • 2声明变量时不同的内存分配
      原始值是指存储在栈内存中的简单数据段,也就是访问变量的直接位置,因为大小固定,所以占用的空间较小。
      引用值是指存储在堆内存中的对象,变量的值就相当于指向对象地址的指针,
    • 3不同的内存分配机制带来了不同的访问机制
        原始值可以直接访问得到
        因为不能直接访问堆内存中的对象,所以会先根据值知道对象的地址,再访问对象的值,即引用访问。

类型的判断方式

  • 1)typeof,不能判断array,null,function,都为Object,只能返回 string,boolean,number,undefined,object,function,symbol
    typeof 123 //Number
    typeof null //Object(null类型被当成一个空对象引用)
    typeof(obj)==“string” ?true :false
    判断一个变量是否存在
    if(typeof a!=undefined){console.log("yes")}
    if(a){}   //如果a未声明则报错
    
  • 2)instanceof 判断某个变量是否是某个对象的实例
    a instanceof Array 返回boolean值,true
    if(window instanceof object){console.log("false")}
    这里的object是js语法中的object,不是dom对象
    
  • 3)constructor
    obj.constructor===String?true:false
  • 4)prototype
    Object.prototype.toString.call(obj)==="[object String]" ?true:false
  • 5)isNaN(不是数字为true)
    isNaN(123) //false isNaN(“123”) //true
三大引用类型
  • 1)object,创建object实例有2中方法
    - a new操作符
    var obj=new Object();
    obj.name=“li”
    -b 字面量
    var obj={name:“li”,age:10}
  • 2)array,每一项都可以保存任意类型的数据
    -a Array构造函数
    var arr=new Array(“12”,“resds”);
    -b数组字面量
    var arr=[“red”,“green”]
  • 3)Function
    -a function fn1(){}
    -b var fn2=function(){}

    三,null和undefined的区别

    • 1)undefined:(1),var声明了但是没赋值,有这个对象
      (2)null表示没有对象,原型链的终点
    if(null) //false
    if(undefined) //false
    if(null==undefined)  //true
    if(null===undefined)   //false
    

猜你喜欢

转载自blog.csdn.net/lihuijuan_1/article/details/86586175
今日推荐