摘要:被覆蓋級(jí)事件處理事件名,事件處理函數(shù),事件捕獲事件冒泡清除事件處理要使用級(jí)事件處理程序不會(huì)被覆蓋而是會(huì)一步一步的解析執(zhí)行。
一,變量
1.可以用new Array("1","2");來(lái)定義數(shù)組。
2.可以通過(guò)為變量賦值為null來(lái)清除變量,如:
//首先定義一個(gè)變量 var i1=10; i1=null; //此時(shí)的i1就被清除了
在函數(shù)里面這樣定義變量的時(shí)候要注意
funtion demo(){ x=10; } //而此前的代碼中都沒(méi)有出現(xiàn)x,那么這里就是定義了x,在調(diào)用demo函數(shù)以后,x就是一個(gè)全局變量了。
二.運(yùn)算符==和===
var i="5"; var j=5; if(i==j) alert(""hello); if(i===j) alert("world");
//上面的代碼運(yùn)行后只會(huì)彈出hello,因?yàn)閕和j的值是相等的,但是i和j的數(shù)據(jù)類型是不等的。所以==只要求值相等,但是===不但要求值相等還要要求數(shù)據(jù)類型也相等。
三,異常捕獲
try{ if() throw ""; }catch(err){ alert(throw); }
四,事件
onload 網(wǎng)頁(yè)加載事件
onclick 點(diǎn)擊事件
onfocus 光標(biāo)聚集事件
onselect 文本框選中事件
onmouseover 鼠標(biāo)經(jīng)過(guò)事件
onmouserout 鼠標(biāo)移出事件
五,dom操作
1,介紹:當(dāng)網(wǎng)頁(yè)被加載時(shí),瀏覽器就會(huì)創(chuàng)建頁(yè)面的文檔對(duì)象模型。
2、DOM操作HTML
1)js能夠改變頁(yè)面中的所有HTML元素
①改變輸出流:document.write();會(huì)覆蓋掉文檔所有的內(nèi)容!慎用!
②獲得元素:document.getElementById();
document.getElementByClass();
document.getElementByTagName();等
其中像tagname和那么這種有可能會(huì)獲得多個(gè)元素的方法,獲得的元素變成一個(gè)對(duì)象數(shù)組,按順序排列
document.getElementById("btn").addEventListener("click",function(){ var x=document.getElementsByName("people"); var y=x[2].value; alert(y); });
③改變Html內(nèi)容:innerHTML;
④改變屬性內(nèi)容:獲得對(duì)象后.屬性=“屬性值”則可,還可以用setAttribute()方法:第一個(gè)參數(shù)是屬性名,第二個(gè)參數(shù)是屬性值
document.getElementById("pid").setAttribute("class","pid2");
獲得屬性值的方法使用getAttribute();
alert(document.getElementById("name").getAttribute("name"));
dom控制html的一些方法:
1,設(shè)置屬性:如var attr=document.getElementById("demo1"); attr.setAttribute("title","dhello");//設(shè)置屬性 var st=attr.getAttribute("title");//得到屬性 alert(st); 2.得到子節(jié)點(diǎn): var child=document.getElementsByTagName("ul")[1].childNodes; alert(child.length); 3得到父節(jié)點(diǎn): var parent=document.getElementsByTagName("li")[0].parentNode; alert(parent.nodeName); 4創(chuàng)建元素節(jié)點(diǎn): var body=document.body; var inp=document.createElement("input");//創(chuàng)建一個(gè)input節(jié)點(diǎn) inp.type="button";//節(jié)點(diǎn)類型 inp.value="ann"; body.appendChild(inp);//把新的子節(jié)點(diǎn)添加到指定節(jié)點(diǎn)。(添加到末尾 ) 5創(chuàng)建文本節(jié)點(diǎn) 6刪除子節(jié)點(diǎn):var parent=document.getElementById("div1");//找到 id="div1" 的元素: var child=document.getElementById("p1");//找到 id="p1" 的這是一個(gè)段落。
這是另一個(gè)段落。
元素: parent.removeChild(child);//從父元素中刪除子元素: 第二種方法:var child=document.getElementById("p1"); child.parentNode.removeChild(child); 7動(dòng)態(tài)添加節(jié)點(diǎn)(課選擇添加的位置) var div=document.getElementById("div"); var node=document.getElementById("pid"); var newnode=document.creatElement("p"); div.inserBefore(newnode,node); 要添加的 在這之前的
2)js能夠改變頁(yè)面中所有的HTML屬性
hello world
hello world!!
document.getElementById("aid").href="www.baidu.com";//改變屬性值
3)js能夠改變頁(yè)面中的所有CSS樣式
document.getElementById("pid").style.backgrouneColor="red";
4)js能夠?qū)?yè)面中所有事件做出反應(yīng)
5)DOM對(duì)象控制HTML
六、事件句柄EventListener
事件句柄就是觸發(fā)事件發(fā)生的一個(gè)動(dòng)作。例如onclick就是當(dāng)被點(diǎn)擊的時(shí)候的句柄。
在js中可以添加事件句柄,這樣可以減少很多代碼量,
例如下面是傳統(tǒng)的事件觸發(fā)方式
在js代碼中添加的事件句柄就如下:處理函數(shù)不能加()括號(hào)符!
var x=document.getElementById("btn");
x.addEventListener("click",demo);//這里有兩個(gè)參數(shù),一個(gè)是事件的句柄,后面的是處理事件的函數(shù)
刪除句柄用removeEventListener();
七,事件
1.事件流:頁(yè)面中接受事件的順序,有兩個(gè)順序,分別是事件冒泡(從里到外),事件捕獲(從外到里)。
2.事件處理:
1)HTML事件處理:直接添加到HTML結(jié)構(gòu)中
2)dom 0級(jí)事件處理:把一個(gè)函數(shù)賦值給一個(gè)事件處理程序?qū)傩?/p>
//0級(jí)事件處理清除事件處理很簡(jiǎn)單只要把onclick賦值為空即可。設(shè)置的時(shí)候是對(duì)象的時(shí)間設(shè)置為null而不是對(duì)象設(shè)置為null!
btn1.onclick=null;
//當(dāng)有多個(gè)同個(gè)事件的處理程序的時(shí)候,前面的會(huì)被后面的事件處理程序清理掉。
btn1.onclick= function () { document.getElementById("pid").style.backgroundColor="red";//被覆蓋 }; btn1.onclick= function () { document.getElementById("pid").style.backgroundColor="blue"; };
3)dom 2級(jí)事件處理:
addEventListener("事件名",“事件處理函數(shù)”,“true/false”);
true:事件捕獲
false:事件冒泡
清除事件處理要使用removeEventListener();
//dom 2級(jí)事件處理程序不會(huì)被覆蓋而是會(huì)一步一步的解析執(zhí)行。
4)IE事件處理程序。(小于等于IE8的版本中使用,跟addEventListener的使用方法相似。)
添加一個(gè)事件attachEvent
刪除一個(gè)事件detachEvent
5)可以根據(jù)瀏覽器的版本不一樣寫不同的代碼
if(btn.addEventListener){ btn.addEventListener(); } else{ btn.attachEventListener() }
3.事件對(duì)象:在觸發(fā)dom事件的時(shí)候都會(huì)產(chǎn)生一個(gè)對(duì)象。
事件對(duì)象的屬性:
1)type:獲取事件類型
document.getElementById("btn").addEventListener("click",showType); function showType(e){ alert(e.type); }
2)target:獲取事件目標(biāo):哪里觸發(fā)的這個(gè)事件,就是這個(gè)事件的對(duì)象是html元素中的什么元素。
document.getElementById("btn").addEventListener("click",showTarget); function showTarget(e){ alert(e.target); }
3)stopPropagation():阻止事件冒泡:觸發(fā)了最里面的元素事件的發(fā)生,但是這個(gè)事件發(fā)生之后包含此元素的上層元素的事件也會(huì)被觸發(fā)!所以有的時(shí)候我們不希望這種情況的發(fā)生就會(huì)阻止事件冒泡的發(fā)生了。
event.stopPropagation();
4)preventDefault():阻止事件默認(rèn)行為
event.preventDefault();
//dom 0級(jí)事件處理
// var btn1=document.getElementById("btn");
// btn1.onclick= function () {
// document.getElementById("pid").style.backgroundColor="red";
// };
//
// btn1.onclick=null;
////dom 2級(jí)事件處理,處理函數(shù)不能加()括號(hào)符!
//
//var btn=document.getElementById("btn");
//btn.addEventListener("click",demo1);
//
//function demo1(){
//
//// alert("dom 2級(jí)事件處理!");
//
// document.getElementById("pid").innerHTML="dom 2級(jí)事件處理!";
//}
//事件對(duì)象
//1.獲取事件對(duì)象的類型
//document.getElementById("btn").addEventListener("click",showType);
//function showType(e){
// alert(e.type);
//}
//2.獲取事件對(duì)象的目標(biāo)
//document.getElementById("btn").addEventListener("click",showTarget);
//function showTarget(e){
// alert(e.target);
//}
八,內(nèi)置對(duì)象
1.什么是對(duì)象:js中所有事物都是對(duì)象,例如字符串,數(shù)組,時(shí)間,數(shù)值,函數(shù)等,每個(gè)對(duì)象都會(huì)帶有屬性和方法;
2.創(chuàng)建對(duì)象:
1)使用new object創(chuàng)建
people=new objet();
people.name="krys";
people.age=20;
2)直接創(chuàng)建:
people={name:"krys",age:20,addres:"guangdong"};
3)使用函數(shù)創(chuàng)建
funtion people(name,age){ this.name=name;this.age=age}; son=new people("jess",20);//然后創(chuàng)建一個(gè)對(duì)象 document.getElementById("btn").addEventListener("click",creat); function people(name,age){ this.name=name; this.age=age; } function creat(){ var name1= document.getElementById("name").value; var age1=document.getElementById("age").value; son=new people(name1,age1); alert(son.name); alert(son.age); }
3.字符串對(duì)象:String:字符串可以使用雙引號(hào)也可以使用單引號(hào)!
屬性:length:str.length可得到字符串的長(zhǎng)度、
indexOf(),在字符串中查找字符串,并返回字符串所在的位置。
document.getElementById("btn").addEventListener("click",creat); function creat(){ var name= document.getElementById("name").value; if(name.match("krys")){ alert("r所在的位置是"+name.indexOf("r")); }else{ alert("sorry~you didnt have rights!") } }
match(),在字符串中匹配字符串,如果字符串1在字符串中存在,則將字符串1打印出來(lái),如果沒(méi)有就返回NULL
document.getElementById("btn").addEventListener("click",creat); function creat(){ var name= document.getElementById("name").value; if(name.match("krys")){ alert(name); }else{ alert("sorry~you didnt have rights!") } }
replace(a,b) a是要替換掉的原來(lái)的字符或字符串,b是新的字符或字符串
document.getElementById("btn").addEventListener("click",creat); function creat(){ var name= document.getElementById("name").value; if(name.match("krys")){ alert(name.replace("krys","krys小仙女")); }else{ alert("sorry~you didnt have rights!") } }
toUpperCase()轉(zhuǎn)換成大寫
toLowerCase()轉(zhuǎn)換成小寫
split()分隔線,將一個(gè)字符串分隔成若干部分,如str="hello,world,welcome,to";var s=str.split(","); s[0]="hello";
4.Date對(duì)象
1)創(chuàng)建Date對(duì)象:
var date=new Date();
alert(date);
var h=date.getHours();//時(shí)
var m=date.getMinutes();//分
var s=date.getSeconds();//秒
2)獲取具體年份:getFullYear();
3)獲取毫秒數(shù):getTime();
4)設(shè)置具體的日期:setFullYear();
5)獲取星期:getDay();
6)設(shè)置每秒更新一次
setTimeout(function(){
showTime();},1000);
//每秒調(diào)用一次showTime函數(shù)
5.數(shù)組對(duì)象:
1)數(shù)組的創(chuàng)建:var a=["1","krys","ok"];
var a=new Array(); a[0]="hell0"; a[1]="world";
var a=new Array("hello","world","welcome");
2)數(shù)組常用的方法:
concat()合并數(shù)組如 a=["krys"];b=["tal"];a.concat(b)=krystal;
sort()排序數(shù)組 var a=["a","c","b"];a.sort();->a b c (默認(rèn)從低到高排序)
設(shè)置為降序:a.sort(funtion(a,b){return a-b;})
push()在數(shù)組末尾添加一個(gè)元素var a=["a","c","b"]; a.push("d");
reverse()翻轉(zhuǎn),對(duì)稱中心點(diǎn)相互交換:a.reverse()= c b a ;
6.math對(duì)象
1)常用函數(shù)
round()四舍五入 Math.round(2.5)=3;
random()返回0~1之間的隨機(jī)數(shù) Math.random();
可以轉(zhuǎn)換成整數(shù):parseInt(Matn.random()*10);
max()返回最大值
min()返回最小值
abs()返回絕對(duì)值
九,瀏覽器的內(nèi)置對(duì)象BOM(browser object model)
1,window對(duì)象:大部分對(duì)象的祖先,最高級(jí)別對(duì)象之一。
1)簡(jiǎn)介:Window對(duì)象是指當(dāng)前的瀏覽器窗口,所有的js全局變量函數(shù)以及變量都是Window對(duì)象的成員。
其中,全局變量是window對(duì)象的屬性,全局函數(shù)是window對(duì)象的方法。
2)獲得瀏覽器內(nèi)部窗口的尺寸(即內(nèi)容區(qū)域的尺寸,不包括滾動(dòng)條工具欄等):
window.innerHeight瀏覽器窗口的內(nèi)部高度,window.innerWidth,瀏覽器的內(nèi)部寬度。
3)使用window.open(url)可以打開(kāi)一個(gè)窗口,使用window.close()可以關(guān)閉當(dāng)前窗口。
2,history對(duì)象
window.history()對(duì)象包含瀏覽器的歷史(url)的集合
有三個(gè)方法:
1)history.back()后退,返回到前一頁(yè)
2)history.forward(),前進(jìn),進(jìn)入到下一頁(yè)
3)history.go(),帶參數(shù),參數(shù)就是要進(jìn)入的頁(yè)數(shù),-1是前一頁(yè),-2是前兩頁(yè),依次類推,當(dāng)前頁(yè)是0.
3,計(jì)時(shí)器
通過(guò)使用js,在一個(gè)設(shè)定的時(shí)間間隔之后來(lái)執(zhí)行代碼,而不是在函數(shù)被調(diào)用后立即執(zhí)行
有兩個(gè)函數(shù)
一個(gè)是setInterval()-間隔指定的毫秒數(shù)持續(xù)的執(zhí)行指定的代碼
一個(gè)是setTimeout()-暫停指定的毫秒數(shù)后執(zhí)行指定的代碼。
可以使用setTimeout來(lái)實(shí)現(xiàn)setInterval()的功能:就是在調(diào)用的函數(shù)代碼里調(diào)用自己!
setInterval(funtion(){},1000);
setTimeout(funtion(){},1000);
可以使用clearInterval(),clearTimeout()來(lái)清楚這個(gè)調(diào)用,
4,Location對(duì)象
用于獲得當(dāng)前頁(yè)面的地址,并把瀏覽器重定向到新的頁(yè)面(其實(shí)我的理解就是解析當(dāng)前地址)
Location對(duì)象的屬性:
location.hostname:返回web主機(jī)的域名
location.pathname:返回當(dāng)前頁(yè)面的路徑和文件名
location.port:返回web主機(jī)的端口
location.protocol:返回所使用的web協(xié)議
location.href:返回當(dāng)前頁(yè)面的url
location.assign()加載新的文檔,參數(shù)是所要加載文檔的路徑。
window.location.hostname;
5,screen對(duì)象
window.screen對(duì)象包含有關(guān)用戶屏幕的信息
screen.avaiilWidth;//可用的屏幕高度
screen.availHeight;//可用的屏幕寬度
screen.height;//屏幕高度
screen.width;//屏幕寬度
6,navigation對(duì)象
7,彈出窗口,cookie
十,js面向?qū)ο笏枷?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/96315.html
摘要:瀏覽器下輸入如果能正常顯示數(shù)據(jù)庫(kù)的信息,則表示啟動(dòng)成功。集合名可以是滿足下列條件的條件集合名不能是空字符串。方法結(jié)果顯示在一個(gè)格式化的方式,可以使用方法方法要限制中的記錄,需要使用方法。命令的基本語(yǔ)法如下恢復(fù)數(shù)據(jù)恢復(fù)備份數(shù)據(jù)使用的命令。 概念 MongoDB 是一個(gè)跨平臺(tái)的,面向文檔的數(shù)據(jù)庫(kù),提供高性能,高可用性和可擴(kuò)展性方便。 MongoDB 工作在收集和文件的概念。 什么是No...
摘要:瀏覽器下輸入如果能正常顯示數(shù)據(jù)庫(kù)的信息,則表示啟動(dòng)成功。集合名可以是滿足下列條件的條件集合名不能是空字符串。方法結(jié)果顯示在一個(gè)格式化的方式,可以使用方法方法要限制中的記錄,需要使用方法。命令的基本語(yǔ)法如下恢復(fù)數(shù)據(jù)恢復(fù)備份數(shù)據(jù)使用的命令。 概念 MongoDB 是一個(gè)跨平臺(tái)的,面向文檔的數(shù)據(jù)庫(kù),提供高性能,高可用性和可擴(kuò)展性方便。 MongoDB 工作在收集和文件的概念。 什么是No...
摘要:泛型通過(guò)在函數(shù)接口類變量名后使用定義。抽象類可以包括具體實(shí)現(xiàn)一個(gè)類只能繼承一個(gè)類,但是可以實(shí)現(xiàn)多個(gè)接口。該開(kāi)源項(xiàng)目目前由社區(qū)進(jìn)行維護(hù)。通常通過(guò)中的字段,或者聲明文件進(jìn)行聲明。 TypeScript 是 Javascript 的一個(gè)超集,提高了代碼的可讀性和可維護(hù)性。Typescript 官網(wǎng)提供的文檔已經(jīng)相當(dāng)完善,但完整地看一遍需要一定的時(shí)間,本文試將 TypeScript 中要點(diǎn)提出...
摘要:固有對(duì)象由標(biāo)準(zhǔn)規(guī)定,隨著運(yùn)行時(shí)創(chuàng)建而自動(dòng)創(chuàng)建的對(duì)象實(shí)例。普通對(duì)象由語(yǔ)法構(gòu)造器或者關(guān)鍵字定義類創(chuàng)建的對(duì)象,它能夠被原型繼承。 筆記說(shuō)明 重學(xué)前端是程劭非(winter)【前手機(jī)淘寶前端負(fù)責(zé)人】在極客時(shí)間開(kāi)的一個(gè)專欄,每天10分鐘,重構(gòu)你的前端知識(shí)體系,筆者主要整理學(xué)習(xí)過(guò)程的一些要點(diǎn)筆記以及感悟,完整的可以加入winter的專欄學(xué)習(xí)【原文有winter的語(yǔ)音】,如有侵權(quán)請(qǐng)聯(lián)系我,郵箱:ka...
閱讀 2672·2021-11-18 10:02
閱讀 3402·2021-09-28 09:35
閱讀 2586·2021-09-22 15:12
閱讀 741·2021-09-22 15:08
閱讀 3071·2021-09-07 09:58
閱讀 3464·2021-08-23 09:42
閱讀 725·2019-08-30 12:53
閱讀 2072·2019-08-29 13:51