JS基础2

1.JS特效
1.1JS组成
ECMAScript;JS标准规范
BOM;浏览器对象模型
DOM;文档对象模型
1.2BOM(Browser Object Document)浏览器对象模型
提供了独立于内容、而与浏览器窗口进行交互的对象;
主要用于管理窗口间的通讯,因此其核心对象为window:
Bom由一系列相关对象构成,且每个对象都提供了很多方法和属性;
是规范浏览器对js语言的支持(js调用浏览器本身的功能)。
BOM的具体实现是window对象

1.2.1 BOM内容;
1.与浏览器交互的对象;
window:移动调整浏览器窗口大小的window对象;
用于导航的location对象和history对象;
获取浏览器、操作系统与用户屏幕信息的navigator和screen对象;

1.window对象:它是ECMAscript规定的全局global对象,也是JS访问浏览器窗口的一个接口;
window对象不用new,直接进行使用即可,类似Math的使用方式,window关键字可以省略不写。
它有系统对话框:这些对话框外观由操作系统、浏览器设置决定,css不起作用,所以最多时候可能需要自定义对话框;
常见的对话框方法有:
alert:警告框 提示一个警告信息,没有返回
confirm:确认框 提示用户选择一项操作(确定/取消)
点击确定 返回true
点击取消 返回false
prompt:提示框, 提示用某个信息的录入或者说收集
点击确定,返回当前用户录入的数据,默认返回空字符串
点击取消,返回null
如://警告框
function testAlert(){var a=window.alert(“我是警告框”);alert(a);}
//确认框
function testConfirm(){var flag=window.confirm(“你确定要删除吗?”);alert(flag);}
//提示框
function testPrompt(){var str=window.prompt(“请输入昵称:”);alert(str);}

它能移动窗口,调整窗口大小;
可以导航和打开窗口;
定时和间隔执行方法:
setTimeout:指定的时间后执行指定的函数
参数1:函数对象
参数2:时间,单位毫秒。
返回值:返回当前定时器的id
setInterval:每间隔指定的时间执行指定的函数
参数1:函数对象
参数2:时间,单位毫秒。
返回值:返回当前间隔器的id
clearTimeout:用来停止指定的定时器
参数:定时器的id
clearInterval:用来停止指定的间隔器
参数:间隔器的id
如://定时执行
function testSetTimeout(){var idi=window.setTimeout
(function(){alert(“我是定时执行”);},3000);}
//间隔执行
function testSetInterval(){var ids=window.setInterval
(function(){alert(“我是间隔执行”);},2000);}
//停止当前的定时方法
function testClearTimeout(){window.clearTimeout(idi);} function testClearInterval(){window.clearInterval(ids); }




JS 其他方法:
子窗口方法:
window.open(‘子页面的资源(相对路径)’,‘打卡方式’,‘配置’);
注意:关闭子页面的方法window.close(),但是此方法只能关闭open方法打开的子页面。
示例:window.open(‘son.html’,‘newwindow’,‘height=400, width=600, top=100px,left=320px, toolbar=yes, menubar=yes, scrollbars=yes, resizable
=yes,location=no, status=yes’);//打开子页面son.html在新的子窗口
在son.html页面实现5秒倒计时关闭窗口;

欢迎访问<span id=”timeSpan”style=”color:red;font-size
:40px;”>秒后页面关闭

子页面调用父页面的函数;
window.opener.父页面的函数;
//2、子页面调用父页面的函数
父页面中:function testFather(){alert(“父页面”);}
子页面中(如上的子窗口中):
function testFa(){window.opener.testFather();}

17-18 JS window对象常用属性:
1.地址栏属性:location;
window.location.href=“新的资源路径(相对路径/URL)”
window.location.reload()重新加载页面资源

//地址栏属性
function testLo(){
window.location.href=”http://www.baidu.com”}
function testLo2(){window.location.reload();}//刷新
<input type=”button” name=””id=”” value=”地址栏”οnclick=”testLo()”/>
<input type=”button” name=””id=”” value=”地址栏”οnclick=”testLo2()”/>

2.历史记录属性:history:
window.history.forward() 页面资源前进,历史记录的前进。
window.history.back() 页面资源后退,历史记录后退
window.history.go(index) 跳转到指定的历史记录资源,index表示前进多少个历史记录;
注意:window.history.go(0)相当于刷新。
如:function testH1(){window.history.forward();}
function testH2(){window.history.go(0);}//刷新

3.屏幕属性:
window.srceen.width;//获取屏幕的宽度分辨率
window.screen.height;//获取屏幕的高度分辨率
如://3、屏幕属性学习
function testScreen(){
var x=window.screen.width;
var y=window.screen.height;
alert(x+":"+y)
}

4.浏览器配置属性
window.navigator.userAgent//浏览器信息
如://4、浏览器配置属性
function testNa(){alert(window.navigator.userAgent);}

注意:所有全局的变量都是window的属性;所有全局的函数都是window的方法;
如var str=”zs”;
console.log(str);//输出结果为zs
console.log(window.str);//输出结果为zs,多页面处理后需要使用window对象区分页面;

19.document对象; 每个载入浏览器的HTML文件都会成为Document对象;
它是浏览器对外提供的支持js的用来操作HTML文档的一个对象,此对象封存的HTML文档的所有信息。它可以对HTML页面中的所有元素进行访问;用于增删改查;
Document对象是Window对象的一部分,可通过window.document属性对其进行访问;

1.获取HTML元素对象
直接获取方式:
document.getElementById(“box”);//根据Id拿到元素
document.getElementByClassName();//根据类选择拿到元素
document.getElementByTagName();//根据标签名拿到元素
document.getElementByName();//根据名字拿元素
如:
function testId(){alert(document.getElementById(“uname”));}
//name,获取name=fav的所有元素对象
function testName(){
alert(document.getElementByName(“fav”).length);}//4个
//标签名,获取Tag为input的所有元素对象,
function testTagName(){
alert(document.getElementsByTagName(“input”).length);}//8个
//class属性,获取className为common的所有元素对象
function testGetEleByClassName(){
var inps=document.getElementsByClassName(“common”);
alert(inps.length);}//2个

<input type=”button” name=”” id-”” value=”id测试” οnclick=”testId()”/>


<input type=”text”name=”uname” id=”uname”value=””/>
唱歌
跳舞
睡觉
打游戏

间接获取方式:
//父子关系:
function testParent(){
//获取父级元素对象
var showdiv=document.getElementById(“showdiv”);
//获取所有的子元素对象数组
var childs=showdiv.childNodes;
alert(childs.length);
}
//子父关系
function testChild(){
//获取子元素对象
var inp=document.getElementById(“inp”);
var div=inp.parentNode;
alert(div);
}
//兄弟关系
function testBrother(){
var inp=document.getElementById(“inp”);
var preEle= inp.previousSibling;//弟获取兄,上一个节点
var nextEle=inp.nextSibling;//兄获取弟,下一个节点
alert(preEle+":::"+nextEle);
}

20 JS操作HTML的元素属性:
获取元素对象
操作元素属性
获取:
元素对象名.属性名//返回当前属性的属性值。----固有
元素对象名.getAttribute(“属性名”);//返回自定义属性的值-----自定义
修改:
元素对象名.属性名=属性值
元素对象名.setAttribute(“属性名”,“属性值”);//修改自定义属性的值----自定义
注意:
尽量的不要去修改元素的id值和name属性值。
使用自定义方式获取固有属性内容,value的值获取的是默认值,不能够获取到实时的用户数据
如://声明函数
//获取属性
function testFi(){var inp=documnet.getElementById(“uname”);
alert.(inp.type+”:”+inp.name+”””+inp.id+”:”inp.value);
}
//修改属性
function testFi2(){var inp=documnet.getElementById(“uname”);
inp.value=”heihei”;
inp.type=”button”;
}
//自定义获取属性
function testFi3(){var inp=documnet.getElementById(“uname”);
alert(inp.getAttribute(“abc”));}
//自定义修改
function testFi3(){var inp=documnet.getElementById(“uname”);
inp.setAttribute(“abc”,”啦啦啦”);}
//使用自定义方式操作固有属性
function testOper(){
//获取元素对象
var inp=document.getElementById(“uname”);
//操作对象属性
alert(inp.getAttribute(“type”));//可以拿到type的实时值;
alert(inp.getAttribute(“value”));//此方法只能拿到value初始值
}
<input type=”button”name=”” id=”” value=”获取元素”οnclick=”testFi()”/>
<input type=”button”name=””id=”” value=”修改元素”οnclick=”testFi2()”/>
<input type=”button”name=””id=””value=”自get”οnclick=”testFi3()”/>
<input type=”button”name=””id=””value=”自set”οnclick=”testFi4()”/>
<input type=”text”name=”uname”id=”uname” value=””abc=”嘻嘻”/>

21-22jS操作元素内容和样式:
1.元素对象内容
获取
元素对象名.innerHTML//返回当前元素对象的所有内容,包括HTML标签
元素对象名.innerText//返回当前元素对象的文本内容,不包括HTML标签
修改
元素对象名.innerHTML=“新的值”//会将原内容全覆盖,且HTML标签会被解析
元素对象名.innerHTML=元素对象名.innerHTML+“新的值”//追加效果
元素对象名.innerText=“新的值”//会将原内容覆盖,但HTML标签不会被解析,会作为普通文本显示。
如://获取元素内容
function getContext(){
var div=document.getElementById(“div01”);//获取元素对象
//获取元素内容
alert(div.innerHTML);
alert(div.innerText);
}
//修改元素内容
function updateContext(){
var div=document.getElementById(“div01”);//获取元素对象
//修改元素对象内容
div.innerHTML=“你先上,我给你殿后”;//输出b加粗后的文本
}

function updateContext2(){
var div=document.getElementById(“div01”);//获取元素对象
//修改元素对象内容
div.innerText=“你先上,我给你殿后”;//输出:你先上,我给你殿后
}

divdivdiv。 divdivdiv。
2.元素对象样式; 获取元素对象 通过style属性 元素对象名.style.样式名="样式值"//添加或者修改 元素对象名.style.样式名=""//删除样式 注意:以上操作,操作的是HTML的style属性声明中的样式。而不是其他css代码域中的样式。 通过className 元素对象名.className="新的值"//添加类选择器样式或者修改类选择器样式 元素对象名.className=""//删除类样式。 如: //js操作元素样式 //js给元素操作样式---style function testOperCss(){ var showdiv=document.getElementById("showdiv");//获取元素对象
	showdiv.style.backgroundColor="#FFA500";//添加元素样式
	showdiv.style.border="solid 2px red";//js修改元素样式
	showdiv.style.border="";//js删除样式
}

//js操作样式–className
function testOperCss2(){
var div01=document.getElementById(“div01”);//获取元素对象
alert(div01.className);//获取类选择器
div01.className=“common2”;//添加或修改类选择器
div01.className="";//删除类选择器样式
}



23-24操作元素的文档结构:
增加节点:
删除节点:

第一种方式:使用innerHTML
div.innerHTML=div.innerHTML+“内容”//增加节点
div.innerHTML=""//删除所有子节点
父节点.removeChild(子节点对象)//删除指定的子节点。

如:function testAdd(){
var showdiv=document.getElementById(“showdiv”);//获取元素对象
//给div追加上传按钮
showdiv.innerHTML=showdiv.innerHTML+"

";
}
function delInp(btn){
var showdiv=document.getElementById(“showdiv”);//获取父级div
//获取要删除的showdiv的子div,它也是input的父节点

var cdiv=btn.parentNode;
showdiv.removeChild(cdiv);//父div删除子div
}


第二种方式: 获取元素对象 var obj=document.createElement("标签名"); 元素对象名.appendChild(obj); 如:function testOper2(){ var showdiv=document.getElementById("showdiv");//获取元素对象 //创建input元素对象 var inp=document.createElement("input"); inp.type="file"; //创建按钮元素对象 var btn=document.createElement("input"); btn.type="button"; btn.value="删除"; btn.οnclick=function(){ showdiv.removeChild(inp); showdiv.removeChild(btn); showdiv.removeChild(br); } //创建换行符 var br=document.createElement("br"); //将创建的元素对象存放到div中 showdiv.appendChild(inp); showdiv.appendChild(btn); showdiv.appendChild(br); }

25-27docunment对form表单的操作:
1.获取form表单对象
使用id:var fm=document.getElementById(“fm”);
使用name属性:var frm=document.frm;
获取form下的所有表单元素对象集合
fm.elements
form表单的常用方法
表单对象.submit();//提交表单数据。
form的属性操作:
表单对象名.action=“新的值”//动态的改变数据的提交路径
表单对象名.method=“新的值”//动态的改变提交方式
js表单元素的通用属性
只读模式:
readonly=“readonly”//不可以更改,但是数据可以提交
关闭模式:
disabled=“disabled”//不可以进行任何的操作,数据不会提交
如:function testForm(){
var fm=document.getElementById(“fm”);//用id获取form表对象
//alert(fm);
var frm=document.frm;//使用form表单的name属性值来获取
//alert(frm===fm);
//获取form表单元素对象集合 ,3个input
//alert(fm.elements.length);
//form表单的常用方法
//fm.submit();很重要,js通过该方法的调用自动提交表单
fm.reset();//js通过该方法重置页面
//form的属性操作
fm.action=“http://www.baidu.com/s”;
}


用户名:

密码:

2.js操作多选框、单选框 被选中状态下在js中checked属性值为true,未选中状态为false; js操作下拉框: 被选择的option对象在js中selected属性值为true,未选中为false 如://多选框操作 function testCheckBox(){ //获取所有的多选元素对象数组 var favs=document.getElementsByName("fav"); //遍历数组 for(var i=0;i

如:function getMouse(event){
//获取event对象
var eve=event || window.event;//因为浏览器差异问题,使用此种方式获取event对象
var x=eve.clientX;
var y=eve.clientY;
alert(x+":"+y);
}
function getKey(event){
//获取event对象
var eve=event || window.event;//因为浏览器差异问题,使用此种方式获取event对象
var code=eve.keyCode;
alert(code);
}



29.JS操作表格:
1、删除行:
行对象.rowIndex//返回行对象的角标
表格对象.deleteRow(要删除的行对象的角标);
2、修改单元内容
单元格对象.innerHTML=“新的内容”;
行对象.cells//返回当前行所有的单元格对象的数组
如://声明删除行
function delRow(btn){
var ta=document.getElementById(“ta”);//获取table对象
var tr=btn.parentNode.parentNode;//获取要删除的行对象
ta.deleteRow(tr.rowIndex);//删除行
}
//修改功能
function updateRow(btn){
//获取单元格对象,获取行对象
var tr=btn.parentNode.parentNode;
var cell=tr.cells[3];//获取行对象
//判断cell.innerHTML的值是否是数字
if(!isNaN(Number(cell.innerHTML))){
//修改单元格内容
cell.innerHTML="";
}}
function updateRow2(inp){
var cell=inp.parentNode;//获取单元格对象
cell.innerHTML=inp.value;//实现保存
}
//选择删除
function chooseDel(){
var ta=document.getElementById(“ta”);//获取表格对象
var chks=document.getElementsByName(“chk”); //获取要删除的行号
for(var i=1;i<chks.length;i++){
if(chks[i].checked){
//删除行
ta.deleteRow(i);
i–;
}}}
//添加行
function addRow(){
var ta=document.getElementById(“ta”);//获取table表格对象
var tr=ta.insertRow(1);//添加行
var cell0=tr.insertCell(0);//添加单元格
cell0.innerHTML="";
var cell1=tr.insertCell(1);
cell1.innerHTML=document.getElementById(“uname”).value;
var cell2=tr.insertCell(2);cell2.innerHTML=“李思”;
var cell3=tr.insertCell(3);cell3.innerHTML=“49.88”;
var cell4=tr.insertCell(4);cell4.innerHTML=“5”;
var cell5=tr.insertCell(5);
cell5.style.textAlign=“center”;
cell5.innerHTML="";
}
//复制行
function copyRow(){
var ta=document.getElementById(“ta”);//获取表格对象
var chks=document.getElementsByName(“chk”);//获取选择行对象
for(var i=0;i<chks.length;i++){
if(chks[i].checked){
var tr=ta.insertRow(ta.rows.length);
//复制行
tr.innerHTML=ta.rows[i].innerHTML;
}}}
//全选
function chooseAll(){
var ck=document.getElementById(“ck”);
var chks=document.getElementsByName(“chk”);
if(ck.checked){
for(var i=0;i<chks.length;i++){chks[i].checked=true;}
}else{for(var i=0;i<chks.length;i++){chks[i].checked=false;
}}}
//隔行变色
function operCss(){
//获取所有的行对象数组
var trs=document.getElementById(“ta”).rows;
//遍历
for(var i=0;i<trs.length;i++){
if(i%2==0){trs[i].style.backgroundColor=“red”;
}else{trs[i].style.backgroundColor=“green”;
}}}




书名:


书名作者价格购买数量操作
java从入门到放弃wollo43.503
javaScript入门高淇77.602
Spring入门卢俊杰78.883
Document常用方法: close();关闭用document.open方法打开的输出流,并显示选定的数据; open();打开一个流,以收集来自任何document.write()或document.writeln()方法的输出; write();向文档写HTML表达式或JS代码; writeln();等同于write方法,不同的是在每个表达式后写一个换行符 1.3事件 jS 是以事件驱动为核心的语言; 事件三要素:(获取)事件源、(绑定)事件、(书写)事件驱动程序; 事件源主要值DOM对象;如div、span、button等; 事件:指操作,如点击按钮等; 事件驱动:指操作后发生的情况,如跳转页面; 编码: 1.获取事件源,获取HTML元素对象:直接获取方式: document.getElementById(“box”);//根据Id拿到元素 document.getElementByClassName();//根据类选择拿到元素 document.getElementByTagName();//根据标签名拿到元素 document.getElementByName();//根据名字拿元素 document.querySelector();//根据指定内容选择匹配好的第一个元素 document.querySelectorAll();//根据指定内容选择匹配元素 2.绑定事件:box.οnclick=function(){}; 1.匿名函数绑定:事件源事件=function (){事件驱动程序} 如var btn=document.getElementById(”btn”); btn.οnclick=function(){alert(“干啥?”);}; 2.函数名绑定:事件源事件=函数名; 如btn.οnclick=deal; function deal)(){{alert(“干啥?”);}

3.书写事件驱动程序:DOM操作

如下

click 4.onload事件;页面加载(文本和图片)完毕时调用JS; 如果不使用该方法,则js的加载和html会同步,且从上到下; 所有元素加载完毕再执行js内容;window.onload可以预防使用标签发生在定义标签之前; 如var log=document.querySelector(“#log”); log.οnmοuseοver=function(){log.src=”img/mig2.jpg”}; log.οnmοuseοut=function(){log.src=”img/mig1.jpg”}; log.οnmοusemοve=function(){log.src=”img/mig2.jpg”};

1.4DOM,文档对象模型(Document Object Model)
当网页被加载时,浏览器会创建页面的文档对象模型DOM;生成一个DOM对象树,getElementById是获取DOM上的元素点,然后操作的时候修改的是该元素的属性;
Document是DOM的一部分,它是一个复合的数据类型;

1.4.1 DOM数据结构作用:
用于查找元素;
用于设置元素的属性;
用于设置元素的样式;
动态创建和删除元素;
事件一触发响应;
1.4.2 DOM访问关系:
1.节点的获取;节点的访问关系是以属性的方式存在的;DOM的节点并不是孤立的,因此可以通过DOM节点间的相对关系对它们进行访问;
2.父节点parentNode;获取当前节点的父节点,如果没有则返回null;
如var a=document.getElementById(“s”);
var pa=a.parentNode;
var pa=a.parentNode.parentNode;//获取父节点的父节点;

3.兄弟节点Sibling;Next,Previous;
1.IE9及其以后,用nextElementSibling表示下一个兄弟节点;
之前(IE 678)用nextRSibling表示;
格式:下一个兄弟节点=节点.nextElementSibling||nextSibling;
如var a=document.getElementById(“s”);
var pa=a.nextElementSibling ||a。NextSibling;

2.IE9及其以后,用previousElementSibling表示上一个兄弟节点;
之前(IE 678)用previousSibling表示;
格式:上一个兄弟节点=节点.previousElementSibling||previousS
ibling;

4.单个节点,获取所有子节点;

6.6数组对象
6.6.1.prototype为任何Array创建的数组增加方法或属性;通常用来存储共享的属性和方法;
如Array.prototype.eat= function(){alert(“eat”);};
Array.prototype.test=”测试”;
//任何Array创建的数组对象都会拥有该方法和属性
var arr = new Array();arr.eat();
var arr1 = new Array();arr1.eat();
如Dog.prototype.eat=function(some){
console.log(this.name+”在吃”+some);
};//所有Dog共享该方法空间,不用每次创建Dog对象时都开辟空间创建eat方法;

Dog.prototype={
eat:function(some){
console.log(this.name+”在吃”+some);
},
run:function (somew){}
}
6.6.2.constructor;
如console.log(arr.constructor);//返回Array
console.log(arr1.constructor);
console.log(Array.constructor);//返回function,所有函数的父类

6.7数据类型和内存分析;
堆区(heap)和栈区(stack):栈区由编译器自动分配释放,存放函数的参数值,局部变量的值等;堆区由程序员分配释放,若开发者不释放,程序结束后由OS回收;
栈区运行效率高于堆区,栈区和堆区类似于内存和硬盘的关系(栈区小,读取方便,堆区大,读取慢);简单数据类型存储在栈区,复杂数据类型存储在堆区;
JS数据类型:简单数据类型(Number、String、Boolean、Null.Undefined)直接存储值;复杂数据类型(Object、Array、Date)存储引用;

6.8JS内置对象
Js本身已写好的对象;创建后直接就可以使用无需定义的对象;
常见的内置对象有Date,Array,Math,RegExp,Error,String;
以及Array高级API:

6.8.1 sort();按元素值的大小顺序(默认升序)排列数组项;
如var arr = [10,3,6];
console.log(arr.sort());//[3,6,10]
console.log(arr.sort(function(a,b){return a-b;}));//[3,6,10]
//通过回调函数进行规制设置, a-b升序,b-a降序,内部运用冒泡规制;
console.log(arr.sort(function(a,b){return b-a;}));//[10,6,3]

6.8.2 slice();返回从原数组指定开始下标到指定结束下标间的项组成的新数组;它可以接受一个或两个参数;一个参数时,slice()方法返回从该参数指定位置开始到当前数组末尾的所有项;二个参数时,则返回指定位置开始到结束位置之间但不包含结束位置的项;原始数组不变;
如var arr = [10,3,6,4,7];
var arr1= arr.slice(2);//arr1为[6,4,7]
var arr2=arr.slice(2,3)//arr2为[6,4]
var arr2=arr.slice(-3,-2)//arr2为[6,4],如果参数为负数,则该参数长度为原数组长度加上该负数,即第一项为5+(-3),第二项为5+(-2);

6.8.3 splice(a,b,c1,cn);用于实现删除,插入和替换数组中的元素;或用于清空数组;
1.删除:可以删除任意数量的项,这需指定2个参数:要删除的起始位置a和要删除的项数b;返回值为被删除的项目的新数组(如果有被删除项);
如var arr = [10,3,6,4,7];
var arr2=arr.splice(0,2);//arr2为[10,3,6],arr为[4,7]

2.插入(替换):可以向指定下标先删除指定的项数再插入任指定数量的元素,只需提供3种参数:起始位置a,要删除的项b,要插入的所有元素c1到cn;
如var arr = [10,3,6,7];
arr.splice(2,0,11,12);//arr为[10,3,6,11,12,7],只插入不替换
arr.splice(2,3,4);
//arr为[10,3,4,7],删除从下标2开始的3个项并添加4;
arr.splice(2,1,5),将下标2的值替换为5;
3.清空数组;
arr.splice(0);//清空数组中所有元素;

6.8.4 forEach();用于调用数组的每个元素,并将元素传递给回调函数;
如果是空数组则不执行回调函数;
格式如下:forEach(function(value,index,arr),thisValue)
value:必须,当前元素
index:可选,当前元素的下标(索引值)
arr;可选;当前元素所属的数组对象;
thisValue:可选;传递给函数的值一般用“this”值;如这个参数为空,则undefined会传递给“this”值;
返回值为undefined;

如var arr = [6,4,7];
arr.forEach(function(value,index){
console.log(index+”:”+value;);
});遍历数组

6.8.5 map();通过指定函数处理数组的每个元素,并返回处理后的数组;
格式如下:array.map(function(value,index,arr),thisValue);

value:必须,当前元素
index:可选,当前元素的下标(索引值)
arr;可选;当前元素所属的数组对象;
thisValue:可选;对象作为该执行回调时使用,传递给函数,用作“this”值;如这个参数为空,则undefined会传递给“this”值;
返回一个新数组,数组中元素为原始数组调用函数处理后的值;
如var arr = [3,4,2];
var arr1=arr.map(function(value,index){
return value*2;
});//arr1为[6,8,4]

6.8.6. filter();检查数组元素,并返回包含符合条件的所有元素的新数组;
格式:array.filter(function(value,index,arr),thisValue)

value:必须,当前元素
index:可选,当前元素的下标(索引值)
arr;可选;当前元素所属的数组对象;
thisValue:可选;对象作为该执行回调时使用,传递给函数,用作“this”值;如这个参数为空,则undefined会传递给“this”值;
返回一个新数组,包含符合条件的所有元素;都不符合则返回空数组;

如var arr = [1,3,4,2,5,7,9];
var arr2=arr.filter(function(value,index){
return index%2===0||value>=4;
});//arr2为[4,5,9];

6.8.7 every();检查数组元素的每个元素是否都符合条件;都符合返回true,否则返回false;
格式:array.every(function(value,index,arr),thisValue);

value:必须,当前元素
index:可选,当前元素的下标(索引值)
arr;可选;当前元素所属的数组对象;
thisValue:可选;对象作为该执行回调时使用,传递给函数,用作“this”值;如这个参数为空,则undefined会传递给“this”值;
返回值:都通过返回true,否则false(布尔值);

如var arr = [1,3,4,2,5];
arr.every(function(value,index){
return value<10;
});//结果为true,所有元素都满足;

6.8.8 some();检查数组元素中是否有元素符合指定条件;如果都不满足返回false;否则返回true;
格式:array.some(function(value,index,arr),thisValue);

value:必须,当前元素
index:可选,当前元素的下标(索引值)
arr;可选;当前元素所属的数组对象;
thisValue:可选;对象作为该执行回调时使用,传递给函数,用作“this”值;如这个参数为空,则undefined会传递给“this”值;
返回值:都没通过返回false,否则true(布尔值);

如var arr = [1,3,4,2,5];
arr.some(function(value,index){
return value>10;
});//结果为false,所有元素都不满足;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值