JS数据类型分为两种:
基本数据类型:Number、String、Boolean、Null、 Undefined、Symbol、(BIgint )
引用数据类型:Object
一、六种基本数据类型
基本数据类型是指存放在栈中的简单数据段,数据大小确定,内存空间大小可以分配,它们是直接按值存放的,所以可以直接按值访问
- Number类型
Number
类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一个数字)两种值数值类型的转换:
Number()
:可以用于任何的数据类型parseInt
:提取 整数数值paseFloat
:提取浮点数值
- String类型
特点:
1、字符串的单引号和双引号作用效果一样
2、字符串有length
属性,可以取得字符串的长度
3、字符串的值是不可变的,所以很多的字符串的api
不会改变原字符串值字符串转换:
String()
:适用于任何的数据类型(null -> null undefined -> undefined)toString()
:null
和undefined
没有这个功能
Boolean
布尔类型
该类型只有两个值:
true
、false
Null
空对象指针类型
如果定了一个对象,初始化可以为null,因为null的基本类型是
Null
,在if
语句中默认转化为false
,在和数值计算默认为0
出现场景:对象不存在
- Undefined
申明了变量但是没有初始化,默认为
undefined
,在if
语句中默认转化为false
,undefined:表示‘缺少值’,就是应该有一个值,但是没有定义,以下用法是典型的出现undefined情况
- 变量被申明,等于undefined
- 调用函数时,应该提供的参数没有提供,该参数等于undefined
- 对象没有赋值的属性,该属性值为undefined
- 函数没有返回值,默认返回undefined
- Symbol
ES6
新增的一个基本数据类型,表示唯一性,可以作为Object的唯一值
二、引用数据类型
引用数据类型也叫对象数据类型,包括function
,object
,array
,date
,RegExp
等可以可以使用new创建的数据,又叫对象类型,他们是存放在堆(heap)内存中的数据
特点:
- 引用类型的值可以改变
- 引用数据类型可以添加属性和方法
- 引用数据类型的赋值是对象引用
- 引用类型的比较是引用的比较
- 引用类型是同时保存在栈区中和堆区中的,引用类型的存储需要在内存的栈区和堆区中共同完成,栈区保存变量标识符和指向堆内存的地址
Object的每个实例都具有下列的属性和方法:
- constructor:构造函数
- hasOwnProperty(proertyName)
用于检查给定的属性在当前对象实例(而不是实例的原型)中是否存在。
- isPropertyOf(Object)
用于检查其原型链的对象是否存在于指定对象的实例中,是则返回true,否则返回false。
- propertyIsEnumerable(propertyName)
用于检查给定的属性是否可以用 for-in 语句进行枚举。
- toLocaleString()
返回对象的字符串表示,该字符串与执行环境的地区对应。
- toString()
返回对象的字符串表示。
- valueOf()
返回对象的字符串、数值、布尔值表示。通常与toString()方法的返回值相同。