zoukankan      html  css  js  c++  java
  • 数组与函数--js基础

    一:数组

    1.创建数组

    • 使用new创建数组
      var 数组名 = new Array();
      eg:var arr = new Array();//创建一个空数组
      var arr = new Array(2);//创建一个长度为2的空数组
      var arr = new Array(2,3) //等同于var arr = [2,3]
    • 使用数组字面量创建数组:[]
      var 数组名 = []; //创建一个空数组
      eg:var 数组名 = [1,2,'aef',true];

    2.获取数组元素
    使用数组下表,下标从0开始
    格式:数组名[索引号]
    eg:arr[0]
    索取所有元素:使用for循环遍历

    3.获取数组长度
    使用length属性
    格式:数组名.length

    4.数组新增元素

    • 通过length属性实现数组扩容( length属性是可读写的)
    • 给对应索引号的元素赋值(新增或修改)eg:arr[3]=4
      注意:不能直接给数组名赋值,否则数组中所有元素将被覆盖
    • push方法 eg:arr.push(4,'pink') //向数组末尾添加元素,返回值为新数组长度
    • unshift方法 eg: arr.unshift(1,'cc') //向数组前面添加元素,返回值为新数组长度

    5.删除数组中的元素

    1. 使用一个新数组存放筛选后的数据
    2. 遍历原始数组
    • pop方法 eg:arr.pop() //删除数组的最后一个元素,返回值即为删除的元素
    • shift() eg: arr.shift() //删除数组的第一个元素

    6.数组排序

    • reverse():翻转数组 //arr.reverse()
    • sort() :给数组排序(冒泡排序) // arr.sort(),默认为升序
      优化:
      arr1.sort(function(a,b){
      return a-b; //升序的排序
      //return b-a;降序
      })

    7.判断是否为数组
    方法一:isinstanceof关键字
    console.log(arr isinstanceof Array)
    方法二:Array.isArray(参数) //h5新增,ie9以上支持

    8.数组索引

    • indexOf():数组中查找给定元素的第一个索引,如存在返回索引号,如不存在返回-1
    • lastIndexOf():在数组中最后一个的索引,如存在返回索引号,如不存在返回-1
      9.数组去重
      核心算法:
      遍历旧数组
      判断元素是否在新数组存在,不存在则添加(利用indexOf()判断,如返回-1则证明在新数组中不存在)
      10.数组转字符串
    • toString() //arr.toString()
    • join(分隔符) //arr.join('-') ,如不传入参数默认为逗号

    二:函数

    • List item

    定义规则:
    function 函数名(形参1,形参2){

    }

    • List item
      函数调用:
      函数名(实参1,实参2)
      注意:如形参个数多余实参个数,会取到形参个数;如实参个数少于形参个数,未被赋值的形参是undefined。

    • 函数返回值return

    return终止函数并且返回只能返回一个值(如用逗号隔开,则以最后一个值为准)
    如函数没有return则返回undefined

    • arguments的使用

    当不确定有多少个参数传递的时候,可用arguments来获取。arguments是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。它是一个伪数组:具有length属性,按照索引方式进行存储,但是没有真正数组的一些方法pop(),push()等

    function fn(){
                console.log(arguments)
            }
            fn(1,2,3)
    

    enter description here

    • 函数作用域:

    函数内的作用域即为局部作用域;
    全局作用域,在整个script标签中都生效
    注意:函数内未声明直接定义的变量为全局变量
    js中没有块级作用域

    • 作用域链:

    内部函数可以访问外部函数变量的这种机制,即采用链式查找的方式,就近原则。

    • 预解析:

    js代码是由浏览器中的js解释器(即js引擎)来执行的。js解释器在运行js代码时分为两步:预解析和代码执行。

    预解析:js引擎会把js里所有的var和function提升到当前作用域的最前面

     - 变量提升:只提升声明部分,不提升赋值
     - 函数提升:把所有函数声明提升到作用域最前面(因此调用可在定义之前)
    

    代码执行:按照代码书写顺序从上往下执行
    特殊案例:
    var a=b=c=9; //等同于var a=;b=9;c=9;
    var a=9,b=9,c=9 //集体声明的正确方式

  • 相关阅读:
    20171229
    对象关系型数据库管理系统(PostgresQL )
    CDN技术之--集群服务与负载均衡
    CDN技术之-介绍
    oracle不同用户间访问表不添加用户名(模式)前缀
    ora-28000 the account is locked
    CDN技术之--该技术概述
    CDN技术之--内容缓存工作原理
    PL/SQL题型代码示例
    在java中使用solr7.2.0 新旧版本创建SolrClient对比
  • 原文地址:https://www.cnblogs.com/tingshu/p/14897669.html
Copyright © 2011-2022 走看看