JS中的引用类型

  JS的数据类型可以分为两类:一类是原始类型(比如数字、布尔值、字符串、undefined、null),另外就是对象类型。我们通常将对象类型称为引用类型。对象值都是引用。举个例子来说明,下如下的代码:

		var x = [3,4,5];
		var y = x;
		y[0] =1;
		console.log(x[0],y[0]);

  打印结果是1 1,而不是3 1。

  这里我们要注意,对象的复制其实仅仅是赋值的引用,也就是说这里的y其实引用,对象本身并没有复制一次。

  如果想得到对象的副本必须自己实现拷贝过程。

  

  

时间: 2024-08-08 04:15:34

JS中的引用类型的相关文章

js中Function引用类型中一些常见且有用的方法和属性

Function类型 函数由于是Function类型的一个实例,所以函数名就是一个指向函数对象的指针,不会与某个函数死死的连接在一起,这也导致了js中没有真正的重载,但好处是,函数对象可以作为另一个函数的参数或是返回值; 访问一个函数对象的指针而不是执行函数本身不能加括号 var func = new Function("x", "y", "return x + y");// 构造函数来实例化一个Function类型, 但不推荐使用 functi

js 基本类型&引用类型

1.基本的数据类型有:undefined,boolean,number,string,null.基本类型的访问是按值访问的,就是说你可以操作保存在变量中的实际的值 基本类型的比较是值的比较.用==比较两个不同类型的变量时会进行一些类型转换.但是当两个值的类型相同的时候,即使是==也相当于是=== 基本类型的变量是存放在栈区的(栈区指内存里的栈内存) 2.对象是属性和方法的集合.也就是说引用类型可以拥有属性和方法 引用类型的存储需要内存的栈区和堆区共同完成.栈区内存保存变量标识符和指向堆内存中该对

js中基本类型的值和引用类型的值的比较

1.动态属性方面的比较 1)基本类型的值是不能添加属性的,即使不会产生任何错误: 2)引用类型的值可以动态的添加属性,以便后面的使用: 1 var cat='cat'; 2 cat.name='Tom'; 3 console.log(cat.name);//undefined 4 5 6 var mouse={}; 7 mouse.name='Jerry'; 8 console.log(mouse.name);//Jerry 2.变量值复制方面的比较 1)基本类型复制的是原始值,不同变量之间不会

JS中的两种数据类型以及实现引用类型的深拷贝

一.前言 我们知道,在JS中数据类型按照访问方式和存储方式的不同可分为基本类型和引用类型.基本类型基本类型有String.Boolean.Number,Undefined.Null,这些基本类型都是按值传递的,也称为值类型. 引用类型引用类型有对象.数组.函数,它们都是按引用访问的. 二.存储方式区别 基本类型和引用类型由于两者在内存中存储的方式不同,造成两者访问的方式也不同.其中,基本类型存储在内存的栈中,是按值访问:引用类型存储在内存的堆中,是按引用访问.可如下图所示: 当有 1 var n

js的变量——基本类型保存在栈中,引用类型保存在堆中

javascript的基本类型:Undefined,Null,Boolean,Number,String 引用类型:Object,Array,Function 基本类型值在内存中占据固定大小,被保存在栈内存中,引用类型值是对象,保存在堆内存中. Javascript的内存的生命周期对于用户来说是透明的,不开放的.在定义变量时候就完成了分配内存,使用时候是对内存的读写操作,内存的释放依赖于浏览器的垃圾回收机制. 栈(stack)和堆(heap)==> 1,栈 stack是有结构的,先进后出,存放基

对JS中函数的理解

函数本质就是功能的集合 JS中函数是对象,因此,函数名实际上仅仅是一个指向函数对象的指针,不会与某个函数绑定,所以,JS中没有重载(重载就是通过传递不同类型的参数,使两个相同函数名的函数执行不同的功能) var fn=function(a){return a+100;} fn=function(a){return a+200;} alert(fn(100)); //300 要访问函数的引用(指针)而不是执行函数时,必须去掉圆括号,加上圆括号表示访问函数执行后的结果 函数体内部的语句在执行时,一旦

js中函数参数值传递和引用传递

js中函数参数值传递和引用传递:在阅读本章节之前建议参阅一下两章节:1.值类型可以参阅javascript的值类型一章节.2.引用类型可以参阅javascript的引用类型一章节.一.函数传递值类型:代码实例如下: function addNum(num) { num+=10; return num; } var num=10; var result=addNum(num); console.log(num); console.log(result); 以上代码的弹出值分别为:10和20,下面进

JS中简单的this学习

我在学习JS初期,在使用this的时候经常出现问题,当然就是在现在,也有一些场景不能很好的明白this到底指代的是什么?看下面一个例子: ? 1 2 3 4 5 6 7 8 9 10 var x = 10;    var foo = {        x: 20,        bar: function() {            alert(this.x);        }    }    var bar = foo.bar;    foo.bar();    //20    bar()

【js实例】js中的5种基本数据类型和9种操作符

js中的5中基本数据类型 js标识符 第一个字符必须为字母,下划线,或美元符 其他字符可以是字母,下划线,美元符,数字 js标识符区分大小写 标识符不能使关键字和保留字 关键字: break do instanceof typeof case else new var catch finally return void continue for switch while debugger function this with default if throw   delete in try