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

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

  • 相关阅读:
    python之HtmlTestRunner(一)生成测试报告
    测试场景分析-上传文件软件
    测试场景分析-一只钢笔
    md文件的基本常用编写语法
    ipad4密码忘记锁定了如何破解
    python之unittest验证函数功能
    python之排序的几种方法
    python之导入模块的方法
    面经-蘑菇街
    面经-有赞
  • 原文地址:https://www.cnblogs.com/luojunweb/p/7053077.html
Copyright © 2011-2022 走看看