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
时间: 2024-10-14 13:04:06

js中基本类型的值和引用类型的值的比较的相关文章

推断js中的类型:typeof / instanceof / constructor / prototype

怎样推断js中的类型呢,先举几个样例: var a = "jason"; var b = 123; var c = true; var d = [1,2,3]; var e = new Date(); var f = function(){ alert('jason'); }; 一.最常见的推断方法:typeof typeof是一个一元运算符,它返回的结果始终是一个字符串,对不同的操作数,它返回不同的结果,另外typeof能够推断function的类型:在推断除Object类型的对象时

JS中基本类型与包装类型的关系

对于JS中一些类型的转化的东西,自己测试并得出的结论,有错误的地方请大大们留言. 不多废话,直接贴代码,测试请直接拷贝全部代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>E

js中的类型和函数参数传递类型问题

js中的类型: 2大类型:原始类型和对象. 原始类型有 boolean.number.string这三个普通原始类型,还有null.undefined这俩特殊原始类型 对象嘛就多了,普通对象.内置对象.全局对象.函数.数组等. 函数参数传递类型: 对于原始类型,传递的是值,即复制一份传入函数,在函数内部修改不影响外部变量本身. 对于对象类型,传递的是地址,在函数内部修改对象时会导致外部变量发生变化. 注意这种情况!参考如下代码: var oMyObj = {name:"罗伯特"}; f

判断js中的类型:typeof / instanceof / constructor / prototype

如何判断js中的类型呢,先举几个例子: var a = "jason"; var b = 123; var c = true; var d = [1,2,3]; var e = new Date(); var f = function(){ alert('jason'); }; 一.最常见的判断方法:typeof typeof是一个一元运算符,它返回的结果始终是一个字符串,对不同的操作数,它返回不同的结果,另外typeof可以判断function的类型:在判断除Object类型的对象时

js中boolean类型的理解

<html> <head> <script type="text/javascript"> var x="12"; alert(x+234); alert(typeof (x+234)); var flag=false; //true=1 false=0; alert(flag+34); </script> </head> <body> String str="ere"; i

js 中的类型比较

console.log(typeof 1) // number console.log(typeof 'cc') // string console.log(typeof true) // boolean console.log(typeof undefined) // undefined console.log(typeof null) // object console.log(typeof NULL) // undefined NULL | Null 都不对 console.log(typ

JS中的类型检测

JS中用于类型检测的函数有typeof.instanceof .Object.prototype.toString.constrcutor.duck type typeof用于检测基本类型和函数 有些特殊情况 null.数组.Date数据类型用typeof判断返回的是object instanceof用来判断对象类型,基于原型链,可以用来判断数组和Date数据类型

js中浏览器类型判断

在JS中判断浏览器的类型,估计是每个编辑过页面的开发人员都遇到过的问题.在众多的浏览器产品中,IE.Firefox.Opera.Safari........众多品牌却标准不一,因此时常需要根据不同的浏览器,甚至相同浏览器不同版本做不同的操作,因此,知晓浏览器的判断方法,还是很重要的.下面列举一下常用的判断方法:1.判断浏览器是否为IE        document.all ? 'IE' : 'others':在IE下document.all值为1,而其他浏览器下的值为0:        nav

js中基本类型的转换,进制的转换

一.基本类型的转换 1.数字转字符串 //直接给数字加空的字符串. var num=20; var str=20+" "; console.log(typeof str);//string //使用String()函数,让数字更加显示的转为字符串 var num=20; var str=String(num); console.log(typeof str);//string //使用toString()方法.toString()有一个参数,用来指定转换的基数.(十进制/二进制/八进制