JavaScript 基础介绍之数据类型(二)

308 阅读3分钟

简介

JavaScript 的数据类型分为两种:基本数据(原始数据)和引用数据(对象类型);
基本数据类型有:String、Number、Null、Undefind、Boolean;
引用数据类型也就是对象类型Object,比如:Object、Array、Function、Data等。

基本数据类型

特点:

  • 按值访问,可以操作保存在变量中的实际值
  • 值是不可变的 image.png
  • 不可添加属性和方法 image.png
  • 赋值是简单的赋值(如果从一个变量向另一个变量赋值基本类型的值,会在变量对象上创建一个新值,然后把该值赋值到位新变量分配的位置上)
  • 基本类型的比较,是值的比较 image.png
  • 值在内存中占据固定大小的空间,被保存在栈内存中。(从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本);栈区包括了变量的标识符和变量的值

具体介绍:

  • Number

    • 数字类型包含整数和浮点数字。

    • 浮点数会自动转化成整数。 image.png

    • 浮点数的最高精度是17位,浮点数计算会产生舍入误差问题 image.png

    • NaN:非数字类型。1、任何关于NaN的操作都会返回NaN;2、NaN不等于自身。 image.png

    • isNaN(),用于判断是否是非数字类型。

    • Number(),转型函数,可以用于任何数据类型。

    • parseInt(),将值转换为整型

    • parseFloat,将值转换为浮点型

  • String

    • 单引号和双引号皆可
    • length属性,可获取字符串长度
    • 值不可改变,要改变一个字符串的值,得先销毁原字符串,再用另一个包含新值的字符串去填充该字符串 image.png
    • String(),适用于任何数据类型
    • toString(),null,defined没有toString()方法
  • Boolean

    • 有两个值:true、false
    • Boolean(),将某个值转换成布尔值
  • Null 只有一个值就是null。Null被看做空指针对象,也是空的对象引用;typeof Null将返回Object。如果你定义一个变量将会当对象使 用,最好设置初始值为null。作为对象原型链的终点。

    image.png

  • Undefind

    • 只有一个值就是undefined。var声明变量初始化未赋值就是undefined。
    • undefined与null相比较,ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。 image.png

引用类型

特点:

  • 值是可以改变的
  • 可以添加属性和方法
  • 赋值是对象引用,引用类型的赋值其实是对象保存在栈区地址指针的赋值 image.png

引用类型保存在变量中的是对象在堆内存中的地址,所以,与基本数据类型的简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象.那么赋值操作后,两个变量都保存了同一个对象地址,而这两个地址指向了同一个对象.因此,改变其中任何一个变量,都会互相影响。

  • 比较是引用的比较

    image.png

    引用类型的比较是引用的比较,保存在栈区中的指向堆内存的地址却是不同的.

  • 同时保存在栈区和堆区中

    引用类型的存储需要在内存的栈区和堆区共同完成,栈区保存变量标识符和指向堆内存的地址

具体介绍

  • Object
    • constructor,构造函数属性,可确定当前对象的构造函数
    • hasOwnProperty,判断属性是否存在于当前对象实例中
    • 关于Object的内容(Array、Object等)后面在介绍

参考文章: mp.weixin.qq.com/s/YMpKnUUKP… www.jb51.net/article/101…