zoukankan      html  css  js  c++  java
  • 理解JavaScript变量值

    JavaScript变量可能包含两种不同数据类型的值:基本类型值引用类型值。基本类型值指的是简单的数据段,而引用类型值是指那些可能由多个值构成的对象。

    在将一个值赋给变量时,解析器必须确定这个值是基本类型值还是引用类型值。

    下面来看看它们具体有那些差别:

    (1)引用类型的值,可以添加或删除属性和方法,而基本类型的值不能够改变属性。

    基本类型
    var str="abc";
    str.color="red";
    str.color;//undefined
    
    引用类型
    var str=new String("123");
    str.color="red";
    str.color;//"red",
    

    (2)复制变量值不一样

    基本类型值存储在栈(stack)中,它们的值直接存储在变量访问的位置。如果从一个变量向另外一个变量复制基本类型的值,会在变量上创造一个新值,然后把该值分配到新的位置上

    基本类型
    var num1=1;
    var num2=num1;
    num1;//1
    num2; //1
    
    num1=2;改变num1的值为2
    num1;//2,结果num1为2
    num2;//1,num2还是1没变
    

    引用类型值存储在堆(heap)中,存储在变量处的值是一个指针(point),指向存储对象的内存处。当从一个变量向另外一个变量复制的时候,因为值的副本其实是一个指针,所以两个变量将引用一个对象,改变其中一个变量,会影响另外一个变量。

    引用类型
    var a=new Object();
    var b=a;
    a.name="a";//"a"
    b.name;//"a"
    
    a.name="new";//"new",改变a.name为new后
    b.name;//"new",查看b.name的值也变成了new了
    
  • 相关阅读:
    python 模块之-time
    asp.net web 通过IHttpAsyncHandler接口进行消息推送
    模拟登陆
    Socket发送文件
    asp.net 在自己指定的文件夹下面弄个App.config来读取配置
    C#多线程数据分布加载
    socket收发消息
    .net分布在指定文件夹的web.confgi或者app.config
    linux 修改oracle字符集
    文件读取草稿(excel,csv)
  • 原文地址:https://www.cnblogs.com/YeChing/p/6273249.html
Copyright © 2011-2022 走看看