JavaScript数据类型详解

  1. 最新的 ECMAScript 标准定义了 7 种数据类型:
  • 6 种原始类型:
  • Boolean
  • null
  • Undefined
  • Number
  • String
  • Symbol(ECMAScript 6 新定义,符号类型)
  • 和 Object
2. 简单了解到JavaScript的7种数据类型,下面咱们来详细介绍下Object数据类型。
在JavaScript语言中,全部的类最底层的原型链都会指向Object的原型。所以基本上全部的类都继承了Object原型方法。也得此缘由Object数据类型又能够分解以下。
3. 以上详细列举了JavaScript中的Object数据类型。那么顺便来谈一谈引用类型。什么是引用类型啦,它又有什么做用呢。
在JavaScript语言中,传参的方式又两种:
  • ①传值 : 将a参数的值传给b参数,b改变 a并不发生改变 (总结:全部的原始类型都是传值)
  • ②引用:将a参数的地址传给b参数引用,这是b改变数据里面的内容,a也发生改变(总结:全部的Object类型都是引用)
//基础类型数据
var a = 'zhangxiao',
    b = 123,
    c = true;

//Object类型数据
var d = {name:"zhangxiao",age:27,isMarry:false},
    d1 = [d];//将d放入d1数组中
console.log(d, '\n', d1, '\n', d2);
// {name:"zhangxiao", age:27, isMarry:false}
// [{name:"zhangxiao", age:27, isMarry:false}]
//修改基础类型数据
var e = a,
    f = b,
    g = c;
e = 'zx',
f = 321, 
g=false;
console.log(a, b, c, '----', e, f, g);
// 'zhangxiao', 123, true, ----, 'zx', 321, false
//修改Object类型数据
var h = d,
    d2 = d1.concat(); //浅复制d1数组
h['isMarry'] = true;
d2[0]['name'] = 'zx';
//引用类型的数据改变,其全部指向引用的数据均改变,基础类型改变,并不引发其余原始数据改变
console.log(h, '\n', d, '\n', d1, '\n', d2, '\n', d1===d2, '\n', d1[0]===d2[0]);
// {name:"zx",age:27,isMarry:true}
// {name:"zx",age:27,isMarry:true}
// [{name:"zx",age:27,isMarry:true}]
// [{name:"zx",age:27,isMarry:true}]
// false  /** 由于d2是有d1数组链接生成的新数组,等同于浅拷贝,故d1和d2是两个不一样数组 */
// true   /** 由于d2是d1浅拷贝,而d1中的元素是Object类型,故d2的元素是引用的d1元素也所以是同一元素 */复制代码
那么看到以上的引用事后是否是会想到它有什么用呢,怎么用它!
在此我在给你们举个例子,Vue是当前用的比较火的一个框架,想必你们必定遇到过父子组件间通讯的问题,除了运用Vue提供的 $emit,还能够运用上述所说的引用方式通讯。子组件修改数据,父组件也跟随修改,由于子组件的数据是经过引用方式得到。这样的通讯高效简洁,Vue官方也非常推荐。固然它的用途不只体现如此,还好比函数传参,如a函数想修改b函数的变量,这时运用引用也是很恰当的。
相关文章
相关标签/搜索