Javascript中的数据类型

你好,朋友 在js中分为基本数据类型和引用数据类型
Javascript有六种基本数据类型(也就是简单数据类型),它们分别是:UndefinedNullBooleanSymbol(es6新增),NumberString。还含有一种复杂数据类型,就是Object
注意:Undefined和Null的区别~

  • Undefined和Null类型都只有一个值,分别为undefined和null
  • undefined其实就是已声明未赋值的变量输出的结果,null其实就是一个不存在的对象的结果
var name; console.log(name)//undefined console.log(document.getElementById('box'))//没有id为box的节点,输出null

基本数据类型和引用数据类型的区别
  • 基本数据类型保存那些基本数据片段,而引用数据类型中保存着对堆内存中对象的引用,是一个指针。与其他语言的不同是,你不可以直接访问堆内存空间中的位置和操作堆内存空间。只能操作对象在栈内存中的引用地址。
  • 引用类型数据在栈内存中保存的实际上是对象在堆内存中的引用地址。通过这个引用地址可以快速查找到保存中堆内存中的对象。
  • 在将一个保存着基本数据类型的变量复制给另一个变量时,会将原始值的副本赋值给新变量,此后这两个变量是完全独立的,他们只是拥有相同的value而已。
  • 在将一个保存着对象内存地址的变量复制给另一个变量时,会把这个内存地址赋值给新变量,也就是说这两个变量都指向了堆内存中的同一个对象,他们中任何一个作出的改变都会反映在另一个身上。(这里要理解的一点就是,复制对象时并不会在堆内存中新生成一个一模一样的对象,只是多了一个保存指向这个对象指针的变量罢了)。
  • 【Javascript中的数据类型】可以为引用数据类型值添加属性和方法,不可以为基本数据类型值添加属性和方法。
基本数据类型赋值的过程:

Javascript中的数据类型
文章图片
基本数据类型赋值的过程
var a = 10; var b = a;

引用数据类型赋值过程:

Javascript中的数据类型
文章图片
引用数据类型赋值过程
var obj1 = { name:"tom", age:18 }; var obj2 = obj1; obj2.name = "jack"; console.log(obj1.name)//jack 这个预期往往不是我们想要的~

欢迎小伙伴们提出自己的见解
更多博客请前去我的github
If this article has give you some help . why don't give me a star?!

    推荐阅读