zoukankan      html  css  js  c++  java
  • JavaScript高级程序设计5.pdf

    队列方法访问规则是FIFO(First-In-First-Out,先进先出),数组方法shift()能够移除数组中第一个项并返回该项,同时将数组长度减1,结合使用shift()和push(),可以像队列一样使用数组

    var colors=new Array();

    var count=colors.push("red","green");

    alert(count);  //2

    count=colors.push("black");

    alert(count);  //3

    var item=colors.shift();

    alert(item);  //"red"

    alert(colors.length);  //2

    unshift()与shift()用途相反,unshift()在数组前端添加任意个项,并返回新数组的长度

    var colors =new Array();

    var count =colors.unshift("red","green");  //"red"为第一项

    alert(count);  //2

    count=colors.unshift("black");

    alert(count);  //3

    var item =colors.pop();

    alert(item);  //"green"

    alert(colors.length);  //2

    数组中存在两个可以直接用的重排序方法reverse()和sort()

    reverse()会反转数组项

    var values=[1,2,3,4,5,6];

    values.reverse();

    alert(values);  //6,5,4,3,2,1

    var values=[10,1,5,10,15];

    values.sort();

    alert(values);  //0,1,10,15,5

    由于sort()方法会调用每个数组项的toString()转型方法,"10"在"5"的前面导致数组排序不正确

    function compare(value1,value2)

    {

      if(value1<value2)

        {

        return -1;

        }

      else if(value1>value2)

        {

        return 1;

        }

      else

        {

        return 0;

        }

    }

    var values=[0,1,5,10,15];

    values.sort(compare);    //把比较函数传递给sort()方法

    alert(values);  //0,1,5,10,15

    操作数组的方法concat()会创建当前数组的一个副本,然后将接受到的参数添加到这个副本的末尾,最后返回新构建的数组

    var colors1=["red","green","blue"];

    var colors2=("yellow",["black","brown"]);

    alert(colors1);  //red,green,blue

    alert(colors2);  //red,green,blue,yellow,black,brown

    操作数组的方法slice()能够基于当前数组中的一个或者多个项创建一个新数组

    var colors=["red","green","blue","yellow","purple"];

    var colors2=colors.slice(1);

    var colors3=colors.slice(1,4);//包括第1项,但不包括第4项

    alert(colors2);  //green,blue,yellow,purple

    alert(colors3);  //green,blue,yellow

    splice()可以称得上最强大的数组方法

    删除:两个参数,要删除第一项的位置和要删除的项数,splice(0,2)即删除数组前两项

    插入:这个基础上提供第三个参数要插入的项,splice(2,0,"red","green")会在当前数组位置2插入"red"和"green"

    替换:splice(2,1,"red","green"),删除位置2并加入"red","green"

    splice()会返回一个数组,包含删除掉的数组项,插入等无删除操作则返回空数组

    var colors=["red","green","blue"];

    var removed=colors.splice(0,1);

    alert(colors);  //green,blue

    alert(removed);  //red

    数组的两个位置方法indexOf()和lastIndexOf(),提供两个参数,要查找的项和(可选的)表示查找起点位置的索引,indexOf()从位置0查找,lastIndexOf从末尾开始查找,没有找到则返回-1,查找项时会使用全等操作符(必须严格相等)

    var numbers=[1,2,3,4,5,4,3,2,1];

    alert(numbers.indexOf(4));  //3

    alert(numbers.lastIndexOf(4));  //5

    alert(numbers.indexOf(4,4));  //5

    alert(numbers.lastIndexOf(4,4));  //3

    ECMAScript5为数组定义了5个迭代方法,每个方法都接受两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响this的值。传入这些方法中的函数会接受三个参数:数组项的值、该项在数组中的位置和数组对象本身,5个迭代方法会对数组中的每一项运行给定函数

    every():如果每一项都返回true,则返回true

    filter():只返回函数中返回true的项组成的数组

    forEach():这个方法没有返回值

    map():返回每次函数调用结果组成的数组

    some():运行函数对任意一项返回true则返回true

    var number=[1,2,3,4,5,4,3,2,1];

    var everyResult=number.every(function(item,index,array)

      {

      return(item>2);

      });

    alert(everyResult);  //false

    var someResult=number.some(function(item,index,array)

      {

      return(item>2);

      });

    alert(someResult);  //true

    var filterResult=number.filter(function(item,index,array)

      {

      return(item>2);

      });

    alert(filterResult);  //[3,4,5,4,3]

    var mapResult=number.map(function(item,index,array)

      {

      return item*2;

      });

    alert(mapResult);  //[2,4,6,8,10,8,6,4,2]

    number.forEach(function(item,index,array)

      {

      //执行某些操作

      });

    ECMAScript5还新增了两个缩小数组的方法reduce()和reduceRight(),两个方法都会迭代数组的所有项,然后构建一个最终返回的值,reduce()从第一项往后,reduceRight()从最后一项往前遍历

    两个方法都接收两个参数:一个在每一项调用的函数和(可选的)作为缩小基础的初始值。函数接收4个参数:前一个值、当前值、项的索引和数组对象

    这个函数返回的任何值都会作为第一个参数自动传给下一项

    var values=[1,2,3,4,5];

    var sum=values.reduce(function(prev,cur,index,array)

      {

      return prev+cur;

      });

    alert(sum);  //15

    第一次执行回调函数,prev是1,cur是2,。第二次prev是3(1加2),cur是3(数组第3项),这个过程会持续到把数组中的每一项都访问一遍,最后返回结果

    Date类型使用自UTC1970/1/1零点开始的毫秒数来保存日期

    new操作符和Date构造函数创建日期对象

    var now=new Date();

    Date构造函数自动获得当前日期和时间,如果想要根据特定的日期和时间创建日期对象必须传入1970距特定日期的毫秒数,ECMAScript提供两个方法简化这一计算过程Date.parse()和Date.UTC()

    Date.parse()方法接收一个表示日期的字符串参数(格式由于地区不同而不同),然后根据字符串参数返回相应日期的毫秒数

    var someDate=new Date(Date.parse("May 25,2004"));

    var someDate=new Date("May 25,2004");  //后台会调用Date.parse()

    Date.UTC()同样返回表示日期的毫秒数,参数形式不同,分别是年份、基于0的月份、天、小时、分和秒,其中年份和月是必需的

    //GMT时间2005年5月5日下午5:55:55

    var allFives=new Date(Date.UTC(2005,4,5,17,55,55));

    //计算机本地时间2005年5月5日下午5:55:55

     var allFives=new Date(2005,4,5,17,55,55);

    Date.now()方法返回表示调用这个方法时的日期和时间的毫秒数

    //取得开始时间

    var start=Date.now();

    //调用函数

    doSomething();

    //取得停止时间

    var stop=Date.now();

    取得时间差

    result=stop-start;

    Date类型的toLocaleString()和toString()根据浏览器和地区的不同返回不同的时间格式

    valueOf()方法返回毫秒数,因此可以方便使用比较操作符来比较日期

    var date1=new Date(2007,0,1);

    var date2=new Date(2007,1,1);

    alert(date1>date2);  //false

    日期格式化方法

    toDateString()

    toTimeString()

    toLocaleTimeString()

    toLocaleDateString()

    toUTCString()

    取得日期和设置日期的各种方法getFullYear(),setFullYear()...略

    ------------------------------------------------------任务完成不了,肿木办--------------------------------------------------------

  • 相关阅读:
    Traefik使用
    kubernetes nfs-client-provisioner外部存储控制器
    基于腾讯云CLB实现K8S v1.10.1集群高可用+负载均衡
    k8s-rabbitmq-(一)集群部署
    TabSet 实现拖动后并保存配置
    C# MD5加密
    VSS “vc6.0vssum.dat may be corrupt”错误
    C#编程基础笔记
    android.view.WindowLeaked的解决办法
    【转】java线程系列---Runnable和Thread的区别
  • 原文地址:https://www.cnblogs.com/sdgjytu/p/3648330.html
Copyright © 2011-2022 走看看