js中基本类型的值和引用类型的值的比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)基本类型复制的是原始值,不同变量之间不会相互影响;
2)引用类型复制的是对象引用地址,不同变量之间会相互影响;
1 var a=1; 2 var b=a; 3 console.log(a);//1 4 console.log(b);//1 5 6 a=2; 7 b=3; 8 console.log(a);//2 9 console.log(b);//3 10 11 12 13 var c={name:‘letter‘}; 14 var d=c; 15 console.log(c.name);//letter 16 console.log(d.name);//letter 17 18 c.name=‘word‘; 19 20 console.log(c.name);//word 21 console.log(d.name);//word
3.传递参数方面的比较
js中所有的参数传递都是“按值传递”,因此在传递参数方面,基本类型数据传递的依然是原始值,引用类型数据传递的则是引用对象的地址
1 function addTen(num){ 2 num += 10; 3 return num; 4 } 5 6 var count=20; 7 var result=addTen(count); 8 9 console.log(count);//20 10 11 console.log(result);//30 12 13 function setName(obj){ 14 obj.name=‘Tom‘; 15 } 16 17 var mouse={name:‘Jerry‘} 18 setName(mouse); 19 20 console.log(mouse.name);//Tom
4.类型检测方面的比较
1)基本类型用typeof检测时,返回的可能是string,boolean,number,undefined
2)引用类型用typeof检测时,除函数返回的值为function外,其余返回的会是object
1 var a = ‘str‘; 2 var b = 3; 3 var c = true; 4 5 var d = {}; 6 var e = []; 7 var f = undefined; 8 var g = null; 9 10 console.log(typeof a);//string 11 console.log(typeof b);//number 12 console.log(typeof c);//boolean 13 console.log(typeof d);//object 14 console.log(typeof e);//object 15 console.log(typeof f);//undefined 16 console.log(typeof g);//object
以上是关于js中基本类型的值和引用类型的值的比较的主要内容,如果未能解决你的问题,请参考以下文章