基本类型:Number,String,Boolean,Null,Undefined
引用类型:Array,Function
基本类型和引用类型的区别
引用类型值保存在堆里,基本类型是存放在栈里
引用类型值可添加属性和方法,而基本类型值则不可以
判断类型方式
typeof
instanceof
Object.prototype.toString.call()
栈和堆的区别
栈由编译器自动分配释放空间,堆一般由程序员分配释放
栈存放在一级缓存中,调用完毕立即释放;堆则是在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定
数组常用方法
改变原数组
shift:删除第一个元素
unshift:向数组开头添加元素
pop:删除最后一个元素
push:向数组末尾添加元素
reverse:数组倒序排序
sort:数组正序排序
splice: splice(start,length,item)删,增,替换数组元素
不改变原数组
concat:连接多个数组
join:将数组所有元素以字符分隔
slice:slice(start,end),切割数组
map,filter,some,every等不改变原数组
数组排序
1. reverse()倒序
2. sort()正序
3. 冒泡排序
var arr = [1, 9, 4, 50, 49, 6, 3, 2]; function test(){ for (var i = 0; i < arr.length - 1; i++){ for (var j = i + 1; j < arr.length; j++){ var tempi = arr[i]; // 获取第一个值,并与后一个值比较 var tempj = arr[j]; if (tempi > tempj){ arr[i] = tempj; arr[j] = tempi; // 如果前一个值比后一个值大,那么相互交换 } } } console.log(arr); // return arr } test(arr); // [1, 2, 3, 4, 6, 9, 49, 50]