js数组2

1.数据类型

1)基本数据类型 五种 存储在栈当中
2)引用数据类型 function Array Object

基本数据类型的复制实际上就是copy了一份一样的数据,互相独立
引用数据类型的复制实际上是地址的复制,而同一个地址指向的是同一个数据(堆空间)

深拷贝和浅拷贝 — 针对引用数据类型

    var arr1 = [1,2,3];
    // 浅拷贝  --- 复制了同一个地址  --- 相互影响
    var arr2 = arr1;
    arr1.push('a');
    console.log(arr1,arr2)

    // 深拷贝 --- 复制值
    for(var i in arr1){
        // arr2[i] = arr1[i]
        arr2.push(arr1[i])
    }

2.栈空间(基本) 堆空间(复杂 )

基本数据类型: number / string / boolean / undefined / null
基本数据类型在内存中的存储情况
在这里插入图片描述复杂数据类型在内存中的存储情况
在这里插入图片描述

3.数组的深拷贝和浅拷贝

浅拷贝就是地址拷贝 arr1 = arr2 将会共享一个地址
深拷贝实际是复制的内容 相互独立

4.函数的值传递和引用传递

基本数据类型属于值传递 本质就是一个简单的复制
引用数据类型属于引用传递 共享地址

5.立即执行函数

(function aa(n){
    console.log(n)
})(5)//传实参的地方

立即执行函数,只执行一次,一般写作匿名函数

6.回调函数

在函数里面,把另外一个函数作为参数

例:生成0-n之间的随机数

a(function rand(n){
    return parseInt(Math.random() * n);
}(5))
function a(b){
    var res = b;
    console.log(res)
}

7.数组扩展

迭代方法:
1)every() 判断数据里面的每一条数据是否都满足条件 — 判断,输出布尔值

    var res = arr.every(function(val,i){
        return val > 2
    })
    console.log(res)

2)some()判断是否有符合条件的数据 — 判断 ,输出布尔值

    var res = arr.some(function(val,i){
        return val > 2
    })
    console.log(res)

3) filter() 返回满足条件的数据形成的新的数组 – 返回的是数据

    var res = arr.filter(function(val,i){
        return val > 20
    })
    console.log(res)

4)forEach () 遍历每一个数据 ---- 没有返回值 — 不能写返回值,写了也没用

    var arr = [1,2,3,4,5];
    var sum = 0;
    arr.forEach(function(val,i){
        sum += val;
    })
    console.log(sum);

5)map() 操作数据里面的每一个数据 — 改变数组里面的数据

    var arr = [1,2,3,4,5];
    var res = arr.map(function(val,i){
        return val * 1.3
    })
    console.log(res)

归并方法:
reduce () 三个参数,经过对数据的操作,得到一个值
reduce ()从前往后操作;reduceRight()从后往前操作
都会迭代数组所有项,然后构建一个最终返回值

    var arr = [1,2,3,4,5];
    var res = arr.reduce(function(sum,val,i){
        return (sum + val)
    })
    console.log(res);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值