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再来访问则是访问修改后的属性。

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

  • 相关阅读:
    Consul 学习文章链接
    秒懂:tomcat 最大线程数 最大连接数
    使用 Spring Cloud Sleuth 实现链路监控 (转)
    (转)Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
    @RequestMapping 用法
    Spring 常用的几种注解
    [转] Spring MVC 深入分析
    [转]session listener的配置和使用
    web.xml中 Log4jConfigListener配置
    [mysql] 手动备份数据
  • 原文地址:https://www.cnblogs.com/luojunweb/p/7053077.html
Copyright © 2011-2022 走看看