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

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

  • 相关阅读:
    day10 基本数据类型(下)
    day09 作业
    day09 基本数据类型(中)
    day08 作业
    day8 for循环+基本数据类型(上)
    Python正课109 —— 前端 进阶8
    Python正课108 —— 前端 进阶7
    Python正课107 —— 前端 进阶6
    Python正课106 —— 前端 进阶 5
    Python正课105 —— 前端 进阶4
  • 原文地址:https://www.cnblogs.com/luojunweb/p/7053077.html
Copyright © 2020-2023  润新知