JavaScript-数据类型
# JavaScript-数据类型
# 数据类型分类
基本数据类型
数值类型(Number)
字符串类型(String)
布尔类型(Boolean)
null
undefined
引用数据类型
- 对象(object)
- 对象(object)
- 数组(Array)
- 时间(Date)
- 正则(RegExp)
- 数学(Math)
- 函数(function)
# 基本数据类型和引用数据类型的区别
- 基本数据类型存储在栈内存中,引用数据类型存储在堆内存中
- 数据存储时,基本数据类型在变量中存的是值,引用数据类型在变量中存储的是空间地址
- 基本数据操作的是值,引用数据类型操作的是空间地址
# 堆栈内存
- 堆内存和栈内存是浏览器形成的两个虚拟内存
- 栈内存主要用来存储基本数据的值;供js代码执行;栈内存是一种简单存储,存储的数据都有范围上线,一旦超过上限,就会栈溢出
- 堆内存主要用来存储引用数据类型
# 数据类型-Number
- JS只有一种数值类型,包含小数和整数
- NaN也是数值类型,代表不是一个数字
isNaN()
:会先把要校验的值强制转换成number类型的;然后再进行判断;如果是一个有效数字,返回false,如果不是一个有效数字,返回trueNumber()
:将其他数据类型的值强制转换成number类型;要把其他数据类型转换成number时,首先会调用toString(),转换成字符串ParseInt()
::用于从一个字符串中提取数字的方法,对字符串从左到右识别,直到遇到一个非有效数字停止,返回匹配的数字,如果第一个字符是非有效数字,返回NaNParseFloat()
: 和parseInt用法一样,区别是ParseFloat多识别一位小数点toFixed()
:保留小数位数的一个方法,返回的是一个字符串
# 数据类型-String
- 在js中用引号包含的文本内容称之为字符串,可以是单引号也可以是双引号,(注意引号是成对出现的)
- 索引: 在字符串中,每个字符都有一个与之对应的索引,这个索引是一个数字,从字符串最左侧开始,第一个字符的索引为0,依次递增;可以通过索引找到字符串中的某个字符,(例:str[0]);
- length:字符串有一个length属性,属性值代表的是当前字符串中字符的个数
- +:拼接符,用来拼接字符串
# 数据类型-Boolean
- 布尔类型常用在条件判断中,他只有两个值true和false
- Boolean(): 把其他类型的值转换成布尔类型,返回值只可能是true或false
- 在js中只有0、空字符串、null、undefined、NaN这五个值转成布尔值时是false,其余都是true
- ! : 取反,该符号首先会把后面的值转换成布尔值,然后取反;连用两次取反,会隐式的将其他数据类型转换成布尔型;(例:!!”aa” ===true)
# 数据类型-Null和Undefined
- Null类型的值只有一个,就是null
- Undefined类型的值也只有一个,就是undefined
- null和undefined都表示没有;null表示现在没有以后可能有,用来占位;undefined表示现在没有定义,现在没有以后也没有
- null表示空对象指针
- null的几种情况
- 通过id获取元素如果获取不到,返回的值默认为null
- 可以给变量赋值为null,来清空变量,可以用来释放堆内存
- 正则捕获捕获不到内容时,返回值为null
- undefined的集中情况
- 如果变量只声明为定义,默认存储的值为undefined
- 获取对象的某个属性是,如果属性不存在,获取的值是undefined
- 如果函数的形参没有对应的实参,那么形参默认存储的值是undefined
- 如果函数没有return返回值,那么默认的返回值是undefined
# 数据类型-对象
- 对象是由键值对组成,每组键值对由逗号隔开,键值对由键(属性名)和值(属性值)组成;键和值之间用冒号隔开,前面是键后面是值;
- 对象的定义
- 首先会开辟一块堆内存空间
- 把对象的键值对存储都该空间中
- 把该空间的地址赋值给变量
- 变量中实际存储的时一个十六进制的空间地址,这个地址是浏览器分配的
- 对象没有length属性
- 获取对象下的某个属性的值:(对象名.属性名)(对象名[属性名])
- 新增键值对:(对象名.新属性名=属性值)(对象名[新属性名]=属性值)
- 修改键值对:(对象名.属性名=属性值)(对象名[“属性名”]=属性值)
- 删除键值对:(delete 对象名.属性名)(delete 对象名[“属性名”])
# 数据类型-数组
- 数组由数组成员项组成,成员项之间由逗号隔开;
- length: 数组由length属性,属性值代表数组成员项的个数
- 索引:索引从0开始,依次递增,与数组的成员项一一对应
- 数组的定义
- 首先在堆内存中开辟一块空间
- 将数组的成员项通过,索引值一一存储
- 把空间地址赋值给变量
- 变量中存储的是一个十六进制的空间地址
上次更新: 2024/08/14, 04:14:33