什么是数组? 准确来说数组是一个数据的集合
length:表示数组的长度,数组里有多少内容
// 创建一个数组 var arr = [1, 2, 3] console.log(arr.length) // 3索引:也就是下标,是指数组里面的数据排在第几个位置 数组的索引是从0开始的
// 创建一个数组 var arr = [1,2,3] console.log(arr[0]) //1 console.log(arr[1]) //2 console.log(arr[2]) //3splice可以写三个参数: splice(从哪一个索引位置开始,截取多少个,替换的新元素) (第三个参数可以不写)
不写第三个参数(删除) var arr = [1, 2, 3,4,5] arr.splice(1,2) console.log(arr) // [1,4,5] 写上第三个参数(替换) var arr = [1, 2, 3,4,5] arr.splice(1,2,"我是替换的内容") console.log(arr) // [1,"我是替换的内容",4,5] 任意位置的插入(插入到索引的前面) 参数:splice(从哪一个索引位置开始,0,插入的新元素) (第二个参数写成0,代表插入) var arr = [1, 2, 3,4,5] arr.splice(1,0,200) console.log(arr) // [1,200, 2, 3,4,5]sort排序有问题,它是按照字符串首字母的ascii值从小到大,如果首字母相同则按第二个ascii来排序,以此类推。 解决办法:
var arr = [1, 2, 3] arr.sort(function(a,b){ console.log(a,b) // a 后一个 // b 前一个 return a - b;//排序的规则 如果后一个数减前一个数 小于0 就会交换位置 }) //降序 arr.sort(function(a,b){ return b - a; }) console.log(arr)不会改变原始数组,而是返回一个新的数组
var arr = [1, 2, 3] // 使用 concat 方法拼接数组 var newArr = arr.concat([4, 5, 6]) console.log(arr) // [1, 2, 3] console.log(newArr) // [1, 2, 3, 4, 5, 6]不会改变原始数组,而是返回一个新的数组 可以自己定义每一项之间链接的内容
var arr = [1, 2, 3] // 使用 join 链接数组 var str = arr.join('-') console.log(arr) // [1, 2, 3] console.log(str) // 1-2-3数据类型分为两大类:基本数据类型和复杂数据类型(引用数据类型) 基本数据类型:number / string / boolean / undefined / null 复杂数据类型:object / function / array / …
我们的存储空间分成两种 栈 和 堆栈: 主要存储基本数据类型的内容堆: 主要存储复杂数据类型的内容基本数据类型在内存的存储情况: ——直接在 栈空间 内有存储一个数据 复杂数据类型在内存的存储情况:
在堆里面开辟一个存储空间把数据存储到存储空间内把存储空间的地址赋值给栈里面的变量基本数据类型是 值 之间的比较 复杂数据类型是 地址 之间的比较
基本数据类型之间的赋值
var num = 10 var num2 = num num2 = 200 console.log(num) // 100 console.log(num2) // 200复杂数据类型之间的赋值
var obj = { name: 'Jack' } var obj2 = obj obj2.name = 'Rose' console.log(obj.name) // Rose console.log(obj2.name) // Rose函数传递基本数据类型
function fn(n) { n = 200 console.log(n) // 200 } var num = 100 fn(num) console.log(num) // 100函数传递复杂数据类型
function fn(o) { o.name = 'Rose' console.log(o.name) // Rose } var obj = { name: 'Jack' } fn(obj) console.log(obj.name) // Rose