【JavaScript基础】js 的数据类型有哪些?

119 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第9天,点击查看活动详情

基本数据类型(原始数据类型)【七种】:

  • Undefined

    undefined表示“缺少值”,此处应该有一个值,只是没有定义

    典型用法:

    1. 变量被声明了,但没有赋值时,就等于undefined
    2. 调用函数时,应该提供的参数没有提供,该参数等于undefined
    3. 对象没有赋值的属性,该属性的值为undefined
    4. 函数没有返回值时,默认返回undefined
  • Null

    null表示“没有对象”,即该处不应该有值

    典型用法:

    1. 作为函数的参数,表示该函数的参数不是对象
    2. 作为对象原型链的终点

    备注:null == undefined 为true,因为它们是类似的值;如果用全等于(===),null === undefined会返回false ,因为它们是不同类型的值。

  • Boolean(布尔值)

    只有两个值:true(真)和false(假)

  • Number(数值)

    整数和小数

  • String(字符串)

    字符串是存储字符的变量,使用单引号或双引包裹起来

  • Symbol

    ES6新增的一种原始数据类型 ,表示为 独一无二 的值,用来定义独一无二的对象属性名。

    Symbol的定义

    • 一种Symbol类型可以通过使用Symbol()函数来生成;

    • Symbol()函数可以接收一个字符串作为参数

      let s1 = Symbol('web');
      let s2 = Symbol('web');
      console.log(s1 === s2); // false ,Symbol()函数接收的参数相同,其变量的值不同,s1和s2是Symbol类型的变量,因为变量的值不同,所以打印的结果为false
      console.log(typeof s1); //symbol
      console.log(typeof s2); //symbol
      
  • BigInt(es10新增,表示任意精度格式的整数) 创建一个 BigInt,可以在一个整数的末尾添加字符n,或者调用BigInt() 函数。

BigInt() 函数使用字符串、数字等作为参数。

const b1 =789n;
const b2 = BigInt("123");
const b3 = BigInt(10);

基本数据类型:直接存放在栈(stack)中,在内存中以固定的大小存储

引用数据类型【一种】:

  • 对象

    对象本质上是由一组无序的键值对(key:value)组成的。包含 function(函数)、Array(数组)、Date(日期)等

    引用数据类型:在栈(stack)中存储指向其堆内存的地址(指针),值存放在堆(heap)中。当我们想要访问引用类型的值的时候,需要先从栈中获得对象的地址指针,然后通过地址指针找到其在堆中的数据。

扩展: (将一个变量赋值给另一个变量)

  • 基本数据类型复制的是值,赋值完成,两个变量没有任何关系;
  • 引用数据类型复制的是地址(指针),复制操作完成后,两个变量实际上将引用同一个对象,修改一个变量另一个变量也会跟着一起变化。