目录
01 基本数据类型和引用数据类型之间的区别
02内置对象之Array
01 基本数据类型和引用数据类型之间的区别
js的数据内存结构是参照java诞生的
内存分为栈内存和堆内存
栈内存: 空间很小 存储基本数据类型
堆内存: 空间很大 引用数据类型声明在栈内存 内容在堆内存 使用地址关联
基本数据类型: 相互赋值的时候 是值复制了一份
引用数据类型(复杂数据类型):
相互赋值的时候 是地址赋值了一份 地址一样 内容一样 一改全改
02内置对象之Array
var arr=new Array(); //表示通过数组的构造函数 使用new调用 创建数组对象
简化写法: var arr = [ ];
push方法: 在数组的尾部添加数据
可以一次传入多个数据 这个方法的返回值是增加后的数组的新长度
unshift方法:在数组的开头添加数据
可以一次传入多个数据 返回值是增加后数组的新的长度
pop( )方法:删除一个尾部的元素
shift( )方法:删除一个数组开头的元素
pop()和shift()返回值都是被删除的元素(会改变原数组)
splice(索引值,数量值):(会改变原数组)
如果括号里只有一个值 是从指定值开始 删除到最后
如果括号里面有两个值 则表示从索引值开始 删除指定的个数
返回值是被删除的元素组成的新数组
slice(start.end) //数组截取 包含头位置 不包含尾位置
返回值是将被截取到的元素放到一个新数组里面,不会改变原数组
includes('元素') //判断是否包含指定的元素 包含返回true 不包含返回false
typeof 检测数组和对象都返回object 所以 typeof无法单独判断当前对象是否是数组
Array.isArray( )构造函数名调用
可以判断是否是数组,是数组返回true,不是数组返回false
还可以利用instanceof关键字 来检测构造函数
对象 instanceof 构造函数名 返回true表示当前对象是当前构造函数new出来的
instanceof 所有对象判断Object 构造函数 都返回true
toString( )数组转换成字符串(没啥用)
valueof( )返回数组本身 打印的就是本身 所以没有意义 也不用
join('|') 把数组转换成字符串 元素之间用引号里的符号分隔
reverse( ) //数组翻转
sort(回调函数(可传可不传)) 排序
数组元素只有个位数,函数会直接按升序排序
如果是两位数的数字元素 组成的数组 则需要使用以下方法排序
arr.sort(function(a,b){
return a-b;//升序排序
return b-a;//降序排序
}