javascript 数据类型

js真是一门有趣的语言。在js的世界中,数据有两种类型。


一种是引用类型。一种是基本数据类型


引用类型:

在js的世界里,有一句话“所有的一切,都是object”,那么问题来了。object是基本数据还是引用类型的呢?
嘿嘿,卖个关子,后面再讲,先来讲讲对于引用类型的定义:

引用类型值则是指那些保存在堆内存中的对象,意思是变量中保存的实际上只是一个指针,这个指针指向内存中的另一个位置,该位置保存对象。

意思就是我们的引用类型是一个日记本,当我们想知道2017年8月2日我们在干什么的时候,日记本的回答永远是在写博客,对吧。


这时候,日记本中的2017年8月2日就是我们的引用类型了,也就是说这是个工具,一个指针我们村粗的位置


引用类型有很多,最常见的是我们的ARRAY,FUNCTION,OBJECT等等

基本数据

基本数据类型的概念是:基本类型值指的是那些保存在栈内存中的简单数据段,即这种值完全保存在内存中的一个位置。

意思就是我们查日记本,但是日记本怎么会知道我们那天干了什么?肯定是我们写过对吧,但是我们写的经历是哪儿来?


我们写日记的本子是怎么来?这就是基本类型要做的事情了,也就是我们每次使用基本类型去操作,我们就会去“构建”一次


那哪些才算基本类型?

Undefined / Null / Boolean / Number / String

没错,undefined也是基本类型

一些代码,便于大家理解:

String.prototype.valueOf = function() { console.log("string类别的valueof方法被调用了") }
			var obj = { valueOf: function() { console.log("obj的valueof方法被调用了"); return 1 } }
			var a1 = 1;
			var a2 = new Number(1);
			var a3 = Number(1);
			var a = 1;
			var b = "1";
			var c = new String("1");
			var d = String("1");
			console.log("==================检测基本类型");
			console.log(typeof b);
			console.log(typeof c);
			console.log(typeof d);
			console.log("=======================检测引用类型")

			console.log(b instanceof String);
			console.log(c instanceof Object);
			console.log(d instanceof String);
			1 == b;
			1 == c;
			1 == d;
			console.log(d === c);
			console.log(b === c);
			console.log(d === b);
			console.log(typeof a1);
			console.log(typeof a2);
			console.log(typeof a3);
			//			 Typeof操作符是检测基本类型的最佳工具;
			//Instanceof用于检测引用类型,可以检测到具体的,它是什么类型的实例;

这儿再提一点题外话。关于为什么叫基本类型,那是因为因为string比较特殊。string的定义是引用类型的,但其操作是值类型,

所以在代码中才会出现我定义的那种情况

对于堆内存还有栈内存,下篇博客再见


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值