加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

变量的基本类型和引用类型

发布时间:2020-12-15 05:34:46 所属栏目:Java 来源:网络整理
导读:Javascript变量分为基本变量和引用变量 基本类型 :如undefined,null,Number,String,Boolean,Symbol...? 按值访问, 可操作保存在变量中的实际值, 保存在栈内存中。 引用类型 :如多个可多个值组成的对象,数组,正则...? 按引用访问, 不可直接操作访问对

Javascript变量分为基本变量和引用变量

  • 基本类型:如undefined,null,Number,String,Boolean,Symbol...? 按值访问, 可操作保存在变量中的实际值, 保存在栈内存中。
  • 引用类型:如多个可多个值组成的对象,数组,正则...? 按引用访问, 不可直接操作访问对象内存空间, 保存在栈内存和堆内存中。

1.复制变量

  • 基本类型:创建新值,把该值复制到新分配的变量地址上,两值可参与任何操作而不互相影响。
  • ?

    ?

  • 引用类型:创建一个新的指针(指针指向存储堆里被复制的对象),将该指针放到为新变量分配的栈空间里
  • ?

2.参数传递

ECMAScrpit中的所有参数都是按值传递的。基本类型和引用类型作参数传递都类似于复制。

  • 基本类型:被传递的值会被复制给函数的内的局部变量,函数内部的局部变量不会影响函数外部的变量的值。
  • 引用类型:将内存中的地址的值(指向堆内数据)复制给函数内部的局部变量(这时局部变量和函数外的变量都指向同一个堆内数据),局部作用域修改的值会在全局反映。

3.检查类型

  

       var num=1;
        var st=‘haha‘;
        var bo=true;
        var nu=null;
        var obj=new Object();
        var ar=[];

?

  • typeof:typeof操作符是确定该值是Number,undefined,String的很不错的工具,但是在判断基本类型还是引用类型就没那么好用了;

  

     console.log(typeof(num));//Number
        console.log(typeof(st));//String
        console.log(typeof(bo));//Boolean
        console.log(typeof(obj),typeof(nu));//Object,Object

?

  • instanceof:如果instanceof检测到是引用类型实例会返回true,是基本类型会返回false
        console.log(nu instanceof Object );//false
        console.log(obj instanceof  Object);//true
        console.log(ar instanceof Array );//true

?

?

参考:《JavaScript权威指南》第三版

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读