重新回顾JavaScript的数值类型

发布时间:2019-08-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了重新回顾JavaScript的数值类型脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

JavaScript中有两中数值类型:基本数值类型和对象类型(引用数据类型)

基本数据类型:

@H_304_15@Boolean undefined Null String Number Symbol // (ES6新增)

对象类型:

Function
Object
Array

可变与不可变
基本上数据类型是不可变的,我们不能给他添加属性,即使添加了属性也是无效的。而引用数据类型则可以添加属性,例如

VAR a = 1;
a.b = 2;
var c = a.b;
console.LOG(a);        // 1
console.log(a.b);      // undefined
console.log(c);        // undefined

显然,当我们试图给a.b或者c赋值的时候,都是undefined

function fn(){};
var arr = [1,2,3];
fn.a = 1;
arr.b = 2;
console.log(fn.a);     //1
console.log(arr.b);    //2

因为他们属于对象类型,支持添加对应的属性,别问为啥,因为对象类型的有这个“天生能力”

基本数值类型通过“值”来做比较,而对象数据类型通过“引用”做比较。
基本上数据类型比较很简单,常规思维可以理解

var a = '123';
var b = '123';
console.log(a === b);   //true

基本数据类型对比,没毛病,很好理解。第一句把“123”赋值给a,第二句把"123"赋值给b,那么a就是"123",b也是同样的道理,比较的结果肯定相等。而引用数据类型对比,并非把等号右侧的内容赋值给左侧变量,而是将左侧变量指向右侧内容,举个栗子:

var a = {a:1};
var b = {a:1};
console.log(a == b);   //false

这个时候不能用“基本数据类型”的数据比较思维来看待这个了,这里画个图出来,相信就很好理解了

重新回顾JavaScript的数值类型

上面的对象分别是底下变量(a和b)的引用(指向),虽然左侧的{a:1}跟右侧的{a:1}看起来一模一样,但是他们还是独立的个体,不相等的。就像科学家克隆了一个动物,虽然可以跟母体长的一模一样,但他们终究是两个个体,看起来一模一样,但起码年龄不同的。但如果他们引用的来相同的话,就返回值就是true了,举个栗子:

var a = {a:1};
var b = a;
console.log(a === b)

图示

重新回顾JavaScript的数值类型

引用(指向)是一样的,那么他们的值肯定是相等的。就像夫妻俩生了第一胎,是个女孩A,国家开放二胎政策后,他们琢磨着再生一个,结果生了双胞胎B和C,这个时候B和C都叫A亲姐姐,那么很明显了,B的姐姐和C的姐姐肯定是同一个人。
这个时候,有人提出问题来了:如果我改变{a:1}的值,他们是否还是相等的呢?答案是只要他们指向同一个地方,无论这个指向的值怎么变,都是一样的。就像B和C的姐姐是A,10年以后A长大了,但她还是B和C的姐姐。代码如下:

var a = {a:1};
var b = a;
b.a = 2;
console.log(a);    // {a:2}
console.log(b);    // {a:2}

脚本宝典总结

以上是脚本宝典为你收集整理的重新回顾JavaScript的数值类型全部内容,希望文章能够帮你解决重新回顾JavaScript的数值类型所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。