day_12 数组函数

这篇博客详细介绍了JavaScript的基础知识,包括数组的创建、操作和遍历,函数的声明与调用,作用域的全局与局部概念,以及内置对象如Math和Date的使用。此外,还讨论了预解析、错误处理和数组的方法,如push、pop、sort等。通过对这些基础知识的深入理解,有助于提升JavaScript编程能力。
摘要由CSDN通过智能技术生成

1、数组
    // 创建一个空数组
    var arr1 = []; 
    // 多个数组项以逗号隔开
    var arr2 = [1, 3, 4,'a']; 
    // 可以通过数组的length属性获取数组的长度
    console.log(arr3.length);
    // 可以设置length属性改变数组中元素的个数
    arr3.length = 0;

    若下标不存在,则返回undefined

    新增元素:数组名[下标] = 值;       //有值就覆盖,没值就新增
              数组名.push()

    删除:arr.pop()

    打印:console.log();

    遍历:for (let index = 0; index < arr.length; index++) {
            const element = arr[index];
            console.log(element);
          }

    arr.splice(a,b):删除元素,[开始位置,删除参数个数]  改变原数组
    var arr1=arr.slice(a,b):[开始位置,结束位置)    不改变原数组,返回新数组

2、函数
    function 函数名(){ 函数体 }
    调用: 函数名();

    函数表达式:var fn = function(){ }

    返回值总结:
        1、如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
        2、如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
        3、如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值也是:undefined
        4、函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退出,
            也就是说return后面的所有其他代码都不会再执行。

    1.函数的覆盖问题
        如果两个函数都是函数的声明,且函数名相同,那么后边的函数会覆盖前边的
        如果两个函数都是函数表达式,且函数名相同,函数的调用会调用最近的一个

    2.函数的内置对象
        arguments是一个内置属性,存储了传递的所有实参,同时也可以进行遍历
        
    3.匿名函数
        (function () {
            alert(123); 
        })();

3.预解析
    包含:var和函数
    有同名函数就不处理var,有同名var也不处理var。     var b=1  就等价于  b=1
    之后其他按序排下去即可

4.作用域
    1.全局作用域
        直接写在script标签中,或者一个单独的JS文件
        页面打开时创建,页面关闭时销毁
        在全局作用域中有一个全局对象 window(代表的是一个浏览器的窗口,
            由浏览器创建),可以直接使用。
        所有创建的变量都会作为 window 对象的属性保存。
        所有创建的函数都会作为 window 对象的方法保存。

    2.局部作用域(函数作用域)
        在函数内部,只在函数的内部起作用
        调用时创建,执行完毕销毁

        每调用一次就会创建一次新的作用域,他们之间相互独立
        
    3.隐式全局变量
        var a = b = c = 1;      //b和c就是隐式全局变量
        var a = 1; b = 2; c = 3;    //b和c就是隐式全局变量
        var a = 1, b = 2, c = 3;    //b和c不是隐式全局变量

5.对象
    创建对象: var person = new Object();
    var o = {
        name: 'zs',
        age: 18,
        sex: true,
        sayHi: function () {
            console.log(this.name);
        }
    };   

6.JavaScript错误
    1.try……catch
    2.finally
    3.throw

7.内置对象
    1.Math对象
        Math对象不是构造函数,它具有数学常数和函数的属性和方法,都以静态成员的方式提供。

        Math.PI   圆周率

        Math.random()      生成随机数
        Math.floor()         向下取整
        Math.ceil()          向上取整
        Math.round()        取整,四舍五入
        Math.abs()          绝对值
        Math.max()         最大值 
        Math.min()         最小值  
        Math.sin()          正弦
        Math.cos()          余弦
        Math.pow()         求指数次幂
        Math.sqrt()         求平方根

    2.Date对象
        1.创建日期对象
            Date()是构造函数
            var date = new Date();

        2.获取原始值:getTime();    valueOf();

        3.获取指定部分
            getMilliseconds() 
            getSeconds()  // 返回0-59
            getMinutes()  // 返回0-59
            getHours()    // 返回0-23
            getDay()      // 返回星期几 0周日   6周6
            getDate()     // 返回当前月的第几天
            getMonth()    // 返回月份,***从0开始***
            getFullYear()  //返回4位的年份  如 2016

    3.array对象
        1.创建数组方式
            (1)、字面量方式
            (2)、new Array()
        
        2.检测一个对象是否拥有数组
            instanceof      如果返回true就是数组,flase就是非数组
            Array.isArray() 如果返回true就是数组,false是非数组
            valueOf()       返回数组对象本身

        3.栈操作
            push()  添加元素
            pop()   删除元素

        4.队列操作
            shift()   删除元素
            unshift() 添加元素

        5.排序方式
            reverse() 反转数组
            sort(sortby); sortby,可选参数,规定排序顺序,必须是函数  如果调用该方法时没有
            使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序
            进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

        6.操作方法
            concat()    把参数拼接到当前数组、 或者用于连接两个或多个数组
            slice(start,end)     1、从start开始截取元素,到end结束,包括start,不包括end,
                返回新数组,start,end是索引,2、不会改变原始数组 splice()    1、从start开始截取元素,
                截取length个,,返回新数组,start是索引,length是个数,但是会删除原数组中截取出来的内容
        
        7.位置方法
            indexOf()        都是找位置 返回索引值 没有找到返回 -1,第一次出现位置
            lastIndexOf()   如果没找到返回-1,元素最后一次出现的位置

        8.数组迭代方法
            forEcah()  用于调用数组的每个元素,并将元素传递给回调函数

            3、filter ()与map ()
            filter()根据指定条件过滤元素,返回新数组 ;
            map()数根据数学运算,返回新数组

        9.清空数组
            方式1 推荐 
                arr = []
            方式2 
                arr.length = 0
            方式3
                arr.splice(0, arr.length)

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值