zoukankan      html  css  js  c++  java
  • javascript基础数据类型与引用类型

    javascript一共有6种数据类型

    有5种基本类型:Null,String Number,Boolean,Undefined

    和一种引用类型Object

    基础类型在内存中存在于栈空间中,例如 var a=20;则在栈空间中开辟了一个a=20的空间

    而Object类型在栈中保存的只是一个内存地址,通过这个地址可以找到堆空间中new出来的对象

    具体如下图:

    其中数组对象,函数(js中函数也是对象)日期,正则等等都是通过Object对象衍生出来的。

    如何检测一个对象的类型呢?

    对于基础类型来说,我们使用typeof关键字来检验

    var a="junjun";

    console.log(a typeof String)//true

    对于引用类型来说使用typeof就不满意了,例如数组是引用类型,正则也是引用类型,我们要知道一个对象是不是数组对象,我们需要使用instanceof来检测

    var b=[1,2,3];

    b instanceof Array 返回true

    关于引用类型必须强调的是引用类型在栈内存中保存的只是一个地址,下面实例说明:

    var a={};
    a.age=12;
    var b=a;
    b.age=13;
    console.log(a.age)

    答案是多少呢?答案是13

    我们画内存图来分析

    var a={}后在堆内存中开辟了一块空间,保存age=12

    var b=a a实际上保存的只是一个地址,把这个地址赋值给b,因为b和a指向的是同一个地址,所以b也能访问堆里面的值;b.age=13则重新更改了里面属性,所以a再来访问则是访问修改后的属性。

    这个题是一个比较经典的易错题

  • 相关阅读:
    Spring(八)-spring5框架新功能
    Spring(七)-事务操作
    Spring(五)-AOP
    Linux errno错误码
    思考:如何保证服务稳定性?
    CPU性能分析工具原理
    Oracle数据库url格式
    java对象的四种引用:强引用、软引用、弱引用和虚引用
    给老板汇报技术规划的要点
    后端程序员必备:分布式事务基础篇
  • 原文地址:https://www.cnblogs.com/luojunweb/p/7053077.html
Copyright © 2011-2022 走看看