JavaScript高级程序设计5.pdf

时间:2022-11-13 07:51:36

队列方法访问规则是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()...略

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

JavaScript高级程序设计5.pdf的更多相关文章

  1. JavaScript高级程序设计61&period;pdf

    JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...

  2. JavaScript高级程序设计60&period;pdf

    错误处理 try-catch语句 try{ //可能会导致错误的代码 }catch(error){ //在错误发生时如何处理 } error是一个包含着错误信息的对象,它有一个message属性,保存 ...

  3. JavaScript高级程序设计58&period;pdf

    15章 使用Canvas绘图 略 16章 HTML5脚本编程 HTML5规范了新的HTML标记和JavaScript API,以便简化创建动态Web界面的工作 跨文档消息传递 简称XDM,指来自不同域 ...

  4. JavaScript高级程序设计57&period;pdf

    表单序列化 首先了解一下浏览器如何将数据发送给服务器 对表单字段的名称和值进行URL编码,使用和号(&)分隔 不发送禁用的表单字段 只发送勾选的复选框和单选按钮 不发送type为“reset” ...

  5. JavaScript高级程序设计55&period;pdf

    输入模式 HTML5为文本字段新增了pattern属性,这个属性的值是一个正则表达式,用于匹配文本框中的值 例如,只想在允许在文本字段中输入数值 <input type="text&q ...

  6. JavaScript高级程序设计54&period;pdf

    过滤输入 对于一些浏览器,可以使用正则表达式里的text()测试用户按下的按键,Firefox和safari(3.1版本之前)会对向上向下.退格键和删除键触发keypress事件,在Firefox中, ...

  7. JavaScript高级程序设计53&period;pdf

    共有的表单字段方法 每个表单字段都有两个方法:focus()和blur(),其中focus()用于将浏览器焦点设置到表单字段,激活表单字段.可以侦听页面的load事件 EventUtil.addHan ...

  8. JavaScript高级程序设计52&period;pdf

    表单脚本 表单的基础知识 在HTML中,表单是由<form>元素表示的,在Javascript对应的是HTMLFormElement类型,它继承自HTMLElement,因此具有与其他HT ...

  9. JavaScript高级程序设计50&period;pdf

    hashchange事件 HTML5新增了hashchange事件,以便在URL的参数列表(及URL中“#”号后面的所有字符串)发生变化时通知开发人员,之所以新增这个事件,是因为在Ajax应用中,开发 ...

  10. JavaScript高级程序设计49&period;pdf

    HTML5事件 contextmenu事件 contextmenu事件是冒泡的,可以将事件处理程序指定到document,这个事件的目标是用户操作的元素,在兼容DOM的浏览器中使用event.prev ...

随机推荐

  1. nginx安装pcre

    一.有的服务器上没有安装pcre那么安装nginx的时候会报错 所以在安装之前我们可以: yum install pcre-devel 如果很不巧,服务器也没有配yum,也不能连互联网.那么我们只能自 ...

  2. Bootstrap系列 -- 24&period; 下拉菜单基本用法

    在使用Bootstrap框架的下拉菜单时,必须调用Bootstrap框架提供的bootstrap.js文件.当然,如果你使用的是未编译版本,在js文件夹下你能找到一个名为“dropdown.js”的文 ...

  3. 夺命雷公狗---微信开发52----网页授权(oauth2&period;0)获取用户基本信息接口(2)

    我们在上一节课已经发送code给第三方了,那么这就要获取code去换取到用户的openid. 第一步:编写create_baseurl.php(上一节课程已经写完了) 第二步:编写vote1.php( ...

  4. Oracle 新增表空间文件

    ALTER TABLESPACE users ADD DATAFILE 'D:/oracle/oradata/orcl/users.dbf' SIZE 500M AUTOEXTEND ON NEXT ...

  5. java基础学习周计划之1--语言基础

    JAVA语言基础第一天一. 知识点:1. 认识Linux操作系统2. JAVA开发环境3. Eclipse IDE二. 关键问题(理论):1. Linux中常用命令pwd.ls.cd的作用2. 简述J ...

  6. Android开发——利用Cursor&plus;CursorAdapter实现界面实时更新

    好久没有更新博客了.不是没时间写,而是太懒.而且感觉有些东西没有时间总结,之之后再想写,就想不起来了.晚上新发现一点东西,所以就及时写下来. 最近利用业余时间在看Android的Download模块, ...

  7. 获得手机当前的ip地址

    package com.kale.floating.net; import java.net.Inet4Address; import java.net.InetAddress; import jav ...

  8. redis cluster集群部署

    上一篇http://www.cnblogs.com/qinyujie/p/9029153.html,主要讲解了 redis cluster 集群架构 的优势.redis cluster 和 redis ...

  9. 把大象装进冰箱的N种方法

    作者:折剑头链接:https://www.zhihu.com/question/49214119/answer/115728034来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  10. easyui icon的使用相关

    easyui的默认图标有以下这些: .icon-blank{ background:url('icons/blank.gif') no-repeat; } .icon-add{ background: ...