对数据,变量,内存,数据类型的理解

/*数据类型 :

//1.分类: 

//基本数据类型:string boolean number null undefined symbol

//引用(对象)数据类型:Object 

 // Function  :一种特别的对象(可以执行)

// Array :一种特别的对象(数值下标,内部数据是有序的)

//2.判断:

//1.typeof: 可以判断string/boolean/number/undefined/function  不能判断null与object  object与array

typeof判断出来的结果是字符串    */

var a='abc';          console.log(typeof a ,typeof a ==='string');//'string'  true

var a=null;           console.log(typeof a ,a===null);//object true

console.log(null == undefined,null === undefined);//true false

//2.instanceof:判断对象的具体类型

var obj={};           console.log(obj instanceof Function ,obj instanceof Object ,obj instanceof Array)//判断obj是否为函数/对象/数组 false/true/false

var a=function(){};   console.log(a instanceof Function ,a instanceof Object);//判断a是否为函数 true   a 是否为对象  true

var b=[];             console.log(b instanceof Array ,b instanceof Object);//判断b是否为数组 true b是否为对象 true

//3.===:可以判断undefined  null

//实例:实例对象:根据类型对象创造的实例对象

//类型:类型对象

function Person (){}//构造函数  类型

var p=new Person() //p就是实例对象 

//1.undenfined与null的区别: undefined是定义但是没有赋值

                        // null是定义并且赋值为null

var a ; console.log(a); //undefined

var a=null; console.log(a);//null

//2.什么时候给变量赋值为null

//1)初始赋值

var a =null;           //初始赋值为null,表明将要赋值为对象

a=['aaa',12];          //确定对象就赋值

//2)最后赋值

var a=null;            //让b指向的对象成为垃圾对象(被垃圾回收器回收) 也就是释放内存

//垃圾对象:没有引用指向的对象

/*3.严格区分变量类型与数据类型

//数据类型: 基本类型

          //对象类型

//变量类型(变量内存值的类型): 基本类型:保存的基本数据

          //引用类型:保存的地址值

//变量本身没有类型  

//什么是数据?  存储在内存中代表特定信息的东西  本质为010101

//数据的特点:  可传递 可运算

//一切皆数据

//内存中所有操作的目标是数据

                //算术运算

                //逻辑运算

                //赋值

                //运行函数

//什么是内存? 内存条通电后产生的可存储数据的空间(临时的)

//内存的产生与死亡:内存条(电路板)==》通电==》产生内存空间==》存储数据==》处理数据==》断电==》内存空间和数据都消失

//一块内存的2个数据:    内部存储的数据   地址值数据

//内存的分类: 栈空间  :全局变量  局部变量

            //堆空间  :对象

//什么是变量? 可变化的量,由变量名和变量值组成

            //每个变量都对应一块小内存,变量名用来查找对应的内存,变量值就是内存中保存的数据

//数据,内存,变量的关系:

                    //内存是用来存储数据的空间

                    //变量是内存的标识

//问题: var a=xxx ,a内存中到底保存的是什么

       //如果xxx是基本数据,保存的就是这个数据

       //如果xxx是对象,保存的就是这个对象的地址值

       //如果xxx是一个变量,保存的xxx的内存内容(可能是基本数据,也可能是地址值)

//关于引用变量赋值问题:

       //2个引用变量指向同一个对象,通过一个变量修改对象内部数据,另一个变量看到的是修改之后的数据  

       //2个引用变量指向同一个对象,让其中一个变量指向另一个对象,另外一个变量仍指向前一个对象*/

       var a={age:12}

       var b=a;

       a={name:'fff',age:13}

       b={age:15}

       console.log(a.name,a.age,b.age); //fff 13 15

       function fn(obj){

           obj={age:17}    //成为垃圾对象

       }

       fn(a)

       console.log(a.age);  //13

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值