码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-12-27 00:08:53      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:set   eof   object   name   对象引用   参数传递   res   类型   引用类型   

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中基本类型的值和引用类型的值的比较

标签:set   eof   object   name   对象引用   参数传递   res   类型   引用类型   

原文地址:http://www.cnblogs.com/xgblogs/p/6223991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!