美文网首页程序员
JS基础 之最新8种数据类型(原始数据类型和引用数据类型)

JS基础 之最新8种数据类型(原始数据类型和引用数据类型)

作者: 老衲不生气 | 来源:发表于2020-07-16 12:09 被阅读0次

    一、JS数据类型分为两类原始数据类型和引用数据类型

    二、原始数据类型

    javascript 的原始数据类型有七种,分别是Number、String、Boolean、null、undefined、symbol 、 BigInt

    原始类型数据的特点:值保存在变量本地,且赋值给其他变量后,其它变量改变不影响原来的值,变量存放在栈区的(栈区指内存里的栈内存).
    1.boolean true & false

    专门用来保存真或者假的类型,值二选一
    

    2.null 空值类型

    不指向任何地址,用于手动赋值,清空内容
    

    3.undefined 未定义类型

     只有一个值undefined,用于没有赋值的变量的默认值
    

    4.number 数值类型

     专门保存数字的类型,用于进行数学计算等的数值.
     所占空间:64位(8个字节)二进制保存.注:一个字节8个位.
    

    5.string 字符串类型

    专门用来保存字符串的类型;" ",用来存储字符串类型的文本.
     所占空间:使用unicode标识的.英文字母和标点对应的是1字节,而一个汉字对应的则是两个字节.
    

    6.symbol (ES6新增)

    本质上是一种唯一标识符,可用作对象的唯一属性名
    

    7.BigInt (最新)

    用于当整数值大于Number数据类型支持的范围时
    1、要创建BigInt,只需要在数字末尾追加n即可
    console.log( 9007199254740995n );    // → 9007199254740995n
    2、创建BigInt的方法是用BigInt()构造函数
    BigInt("9007199254740995");    // → 9007199254740995n
    

    三、引用数据类型

    Object,Function,Array (在JS中除了基本数据类型以外的都是对象,数组是对象,函数是对象,正则表达式是对象)
    引用数据类型的特点:引用类型的值是可变的;引用类型的值是保存堆内存中的对象;引用数据类型值的比较本质上是内存地址的比较.

    四、两种数据类型的区别

    1、声明变量时内存分配不同

    • 原始类型:在栈中,因为占据空间是固定的,可以将他们存在较小的内存中-栈中,这样便于迅速查询变量的值

    • 引用类型:存在堆中,栈中存储的变量,只是用来查找堆中的引用地址。

    2、访问机制不同

    • 在javascript中是不允许直接访问保存在堆内存中的对象的,所以在访问一个对象时,首先得到的是这个对象在堆内存中的地址,然后再按照这个地址去获得这个对象中的值,这就是按引用访问。
    • 而原始类型的值则是可以直接访问到的。

    3、复制变量时的不同

    • 原始值:在将一个保存着原始值的变量复制给另一个变量时,会将原始值的副本赋值给新变量,此后这两个变量是完全独立的,他们只是拥有相同的value而已。

    • 引用值:在将一个保存着对象内存地址的变量复制给另一个变量时,会把这个内存地址赋值给新变量,也就是说这两个变量都指向了堆内存中的同一个对象,他们中任何一个作出的改变都会反映在另一个身上。

    相关文章

      网友评论

        本文标题:JS基础 之最新8种数据类型(原始数据类型和引用数据类型)

        本文链接:https://www.haomeiwen.com/subject/ymfphktx.html