JS進(jìn)階慕課學(xué)習(xí)筆記1_第1頁
JS進(jìn)階慕課學(xué)習(xí)筆記1_第2頁
JS進(jìn)階慕課學(xué)習(xí)筆記1_第3頁
JS進(jìn)階慕課學(xué)習(xí)筆記1_第4頁
JS進(jìn)階慕課學(xué)習(xí)筆記1_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、讓你認(rèn)識JS3什么是變量3給變量取個名字(變量命名)4確定你的存在(變量聲明)5多樣化的我(變量賦值)5 表達(dá)出你的想法(表達(dá)式)6我還有其它用途( +號操作符)7自加一,自減一 ( +和- -)7 較量較量(比較操作符)8我與你同在(邏輯與操作符)8我或你都可以 (邏輯或操作符)9是非顛倒(邏輯非操作符)9保持先后順序(操作符優(yōu)先級)10一起組團(tuán)(什么是數(shù)組)10組團(tuán),并給團(tuán)取個名(如何創(chuàng)建數(shù)組)11誰是團(tuán)里成員(數(shù)組賦值)12 團(tuán)里添加新成員(向數(shù)組增加一個新元素)13呼叫團(tuán)里成員(使用數(shù)組元素)13了解成員數(shù)量(數(shù)組屬性length)13二維數(shù)組14做判斷(

2、if語句)15二選一 (if.else語句)15多重判斷(if.else嵌套語句)16多種選擇(Switch語句)17重復(fù)重復(fù)(for循環(huán))19反反復(fù)復(fù)(while循環(huán))21來來回回(Do.while循環(huán))22退出循環(huán)break23繼續(xù)循環(huán)continue24什么是函數(shù)25定義函數(shù)26函數(shù)調(diào)用27有參數(shù)的函數(shù)27返回值的函數(shù)28什么是事件28鼠標(biāo)單擊事件( onclick )29鼠標(biāo)經(jīng)過事件(onmouseover)29鼠標(biāo)移開事件(onmouseout)30光標(biāo)聚焦事件(onfocus)31失焦事件(onblur)32內(nèi)容選中事件(onselect)33文本框內(nèi)容改變事件(onchange)

3、34加載事件(onload)35什么是對象37Date 日期對象38返回/設(shè)置年份方法39返回星期方法39返回/設(shè)置時間方法40String 字符串對象40返回指定位置的字符40返回指定的字符串首次出現(xiàn)的位置41字符串分割split()42提取字符串substring()42提取指定數(shù)目的字符substr()43Math對象44向上取整ceil()45向下取整floor()46四舍五入round()46隨機(jī)數(shù) random()47Array 數(shù)組對象48數(shù)組連接concat()49指定分隔符連接數(shù)組元素join()50顛倒數(shù)組元素順序reverse()51選定元素slice()51數(shù)組排序so

4、rt()52window對象53JavaScript 計時器54計時器setInterval()55 取消計時器clearInterval()55 計時器setTimeout()56取消計時器clearTimeout()57 History 對象58返回前一個瀏覽的頁面window.history.back()59 返回下一個瀏覽的頁面window.history.forward()59返回瀏覽歷史中的其他頁面window.history.go(number)59Location對象60Navigator對象61userAgent61screen對象62

5、認(rèn)識DOM63getElementsByName()方法65getElementsByTagName()方法66區(qū)別getElementByID,getElementsByName,getElementsByTagName67getAttribute()方法68setAttribute()方法69節(jié)點屬性69 訪問子結(jié)點childNodes70訪問子結(jié)點的第一和最后項71 訪問父節(jié)點parentNode71訪問兄弟節(jié)點72插入節(jié)點appendChild()74插入節(jié)點insertBefore()74刪除節(jié)點removeChild()75替換元素節(jié)點replaceChild(

6、)77創(chuàng)建元素節(jié)點createElement78創(chuàng)建文本節(jié)點createTextNode79瀏覽器窗口可視區(qū)域大小80網(wǎng)頁尺寸scrollHeight81網(wǎng)頁尺寸offsetHeight81網(wǎng)頁卷去的距離與偏移量81讓你認(rèn)識JS你知道嗎,Web前端開發(fā)師需要掌握什么技術(shù)?也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會使用HTML+CSS創(chuàng)建一個漂亮的頁面,但這還不夠,它只是靜態(tài)頁面而已。我們還需使用JavaScript增加行為,為網(wǎng)頁添加動態(tài)效果。準(zhǔn)備好,讓JavaScript帶你進(jìn)入新境界吧!JavaScript能做什么?1.增強(qiáng)頁面動態(tài)效果(如:下拉菜單、圖片

7、輪播、信息滾動等)2.實現(xiàn)頁面與用戶之間的實時、動態(tài)交互(如:用戶注冊、登陸驗證等)JS進(jìn)階篇學(xué)習(xí)什么?在JavaScript入門篇中,我們學(xué)習(xí)了如何插入JS、輸出內(nèi)容及簡單的DOM操作,JavaScript進(jìn)階篇讓您進(jìn)一步的了解JS的變量、數(shù)組、函數(shù)、語法、對象、事件、DOM操作,制作簡單的網(wǎng)頁動態(tài)效果。什么是變量什么是變量? 從字面上看,變量是可變的量;從編程角度講,變量是用于存儲某種/某些數(shù)值的存儲器。我們可以把變量看做一個盒子,盒子用來存放物品,物品可以是衣服、玩具、水果.等。給變量取個名字(變量命名)我們?yōu)榱藚^(qū)分盒子,可以用BOX1,BOX2等名稱代表不同盒子,BOX1就是盒子的名字

8、(也就是變量的名字)。我們趕快給變量取個好名字吧!變量名字可以任意取,只不過取名字要遵循一些規(guī)則:1.必須以字母、下劃線或美元符號開頭,后面可以跟字母、下劃線、美元符號和數(shù)字。如下:正確: mysum _mychar $numa1 錯誤: 6num /開頭不能用數(shù)字 %sum /開頭不能用除(_ $)外特殊符號,如(% + /等) sum+num /開頭中間不能使用除(_ $)外特殊符號,如(% + /等)2.變量名區(qū)分大小寫,如:A與a是兩個不同變量。3.不允許使用JavaScript關(guān)鍵字和保留字做變量名。確定你的存在(變量聲明)我們要使用盒子裝東西,是不是先要找到盒子,那在編程中,這個過

9、程叫聲明變量,找盒子的動作,如何表示:聲明變量語法: var 變量名; var就相當(dāng)于找盒子的動作,在JavaScript中是關(guān)鍵字(即保留字),這個關(guān)鍵字的作用是聲明變量,并為"變量"準(zhǔn)備位置(即內(nèi)存)。var mynum ; /聲明一個變量mynum當(dāng)然,我們可以一次找一個盒子,也可以一次找多個盒子,所以Var還可以一次聲明多個變量,變量之間用","逗號隔開。var num1,mun2 ; /聲明一個變量num1注意:變量也可以不聲明,直接使用,但為了規(guī)范,需要先聲明,后使用。多樣化的我(變量賦值)我們可以把變量看做一個盒子,盒子用來存放物品,那如何

10、在變量中存儲內(nèi)容呢?我們使用"="號給變量存儲內(nèi)容,看下面的語句:var mynum = 5 ; /聲明變量mynum并賦值。這個語句怎么讀呢? 給變量mynum賦值,值為5。我們也可以這樣寫:var mynum; /聲明變量mynummynum = 5 ; /給變量mynum賦值注:這里 "="號的作用是給變量賦值,不是等于號。盒子可以裝衣服、玩具、水果.等。其實,變量是無所不能的容器,你可以把任何東西存儲在變量里,如數(shù)值、字符串、布爾值等,例如:var num1 = 123; / 123是數(shù)值var num2 = "一二三&quo

11、t; /"一二三"是字符串var num3=true; /布爾值true(真),false(假)其中,num1變量存儲的內(nèi)容是數(shù)值;num2變量存儲的內(nèi)容是字符串,字符串需要用一對引號""括起來,num3變量存儲的內(nèi)容是布爾值(true、false)。 表達(dá)出你的想法(表達(dá)式)表達(dá)式與數(shù)學(xué)中的定義相似,表達(dá)式是指具有一定的值、用操作符把常數(shù)和變量連接起來的代數(shù)式。一個表達(dá)式可以包含常數(shù)或變量。我們先看看下面的JavaScript語句:生活中“再見”表達(dá)方法很多,如:英語(goodbye)、網(wǎng)絡(luò)語(88)、肢體語(揮揮手)等。在JavaScrip

12、t表達(dá)式無處不在,所以一定要知道可以表達(dá)哪些內(nèi)容,看看下面幾種情況:注意:串表達(dá)式中mychar是變量 注意:數(shù)值表達(dá)式中num是變量 注意:布爾表達(dá)式中num是變量我還有其它用途( +號操作符)操作符是用于在JavaScript中指定一定動作的符號。(1)操作符看下面這段JavaScript代碼。sum = numa + numb;其中的"="和"+"都是操作符。JavaScript中還有很多這樣的操作符,例如,算術(shù)操作符(+、-、*、/等),比較操作符(<、>、>=、<=等),邏輯操作符(&&

13、;、|、!)。注意: “=” 操作符是賦值,不是等于。(2) "+"操作符算術(shù)運算符主要用來完成類似加減乘除的工作,在JavaScript中,“+”不只代表加法,還可以連接兩個字符串,例如:mystring = "Java" + "Script" / mystring的值“JavaScript”這個字符串 自加一,自減一 ( +和- -)算術(shù)操作符除了(+、-、*、/)外,還有兩個非常常用的操作符,自加一“+”;自減一“-”。首先來看一個例子:mynum = 10;mynum+; /mynum的值變?yōu)?1mynum

14、-; /mynum的值又變回10上面的例子中,mynum+使mynum值在原基礎(chǔ)上增加1,mynum-使mynum在原基礎(chǔ)上減去1,其實也可以寫成:mynum = mynum + 1;/等同于mynum+mynum = mynum - 1;/等同于mynum- 較量較量(比較操作符)我們先來做道數(shù)學(xué)題,數(shù)學(xué)考試成績中,小明考了90分,小紅考了95分,問誰考的分?jǐn)?shù)高?答: 因為“95 > 90”,所以小紅考試成績高。其中大于號">" 就是比較操作符,小紅考試成績和小明考試成績就是操作數(shù),并且是兩個操作數(shù)。也就是說兩個操作數(shù)通過比較操作符進(jìn)行比較,得到值為

15、真(true)和假(false)。在JavaScript中,這樣的比較操作符有很多,這些操作符的含義如下: 看看下面例子:var a = 5;/定義a變量,賦值為5var b = 9; /定義b變量,賦值為9document.write (a<b); /a小于b的值嗎? 結(jié)果是真(true)document.write (a>=b); /a大于或等于b的值嗎? 結(jié)果是假(false)document.write (a!=b); /a不等于b的值嗎? 結(jié)果是真(true)document.write (a=b); /a等于b的值嗎? 結(jié)果是假(false)我與你同在(邏輯與

16、操作符)數(shù)學(xué)里面的“a>b”,在JavaScript中還表示為a>b;數(shù)學(xué)中的“b大于a,b小于c”是“a<b<c”,那么在JavaScript中可以用&&表示,如下:b>a && b<c /“&&”是并且的意思, 讀法"b大于a"并且" b小于c "好比我們參加高考時,在進(jìn)入考場前,必須出示準(zhǔn)考證和身份證,兩者缺一不可,否則不能參加考試,表示如下:if(有準(zhǔn)考證 &&有身份證) 進(jìn)行考場考試 “&&”是邏輯與操作符,只有“&am

17、p;&”兩邊值同時滿足(同時為真),整個表達(dá)式值才為真。邏輯與操作符值表:注意: 如果A為假,A && B為假,不會在執(zhí)行B; 反之,如果A為真,要由 B 的值來決定 A && B 的值。我或你都可以 (邏輯或操作符)"|"邏輯或操作符,相當(dāng)于生活中的“或者”,當(dāng)兩個條件中有任一個條件滿足,“邏輯或”的運算結(jié)果就為“真”。例如:本周我們計劃出游,可是周一至周五工作,所以周六或者周日哪天去都可以。即兩天中只要有一天有空,就可以出游了。var a=3;var b=5;var c;c=b>a |a>b; /b

18、>a是true,a>b是false,c是true邏輯或操作符值表:注意: 如果A為真,A | B為真,不會在執(zhí)行B; 反之,如果A為假,要由 B 的值來決定 A | B 的值。是非顛倒(邏輯非操作符)"!"是邏輯非操作符,也就是"不是"的意思,非真即假,非假即真。好比小華今天買了一個杯子,小明說:"杯子是白色的",小亮說:“杯子是紅色的”,小華說:"小明說的不是真話,小亮說的不是假話"。猜猜小華買的什么顏色的杯子,答案:紅色杯子。邏輯非操作符值表:看看下面代碼,變量c的值是

19、什么:var a=3;var b=5;var c;c=!(b>a); / b>a值是true,! (b>a)值是falsec=!(b<a); / b<a值是false, ! (b<a)值是true保持先后順序(操作符優(yōu)先級)我們都知道,除法、乘法等操作符的優(yōu)先級比加法和減法高,例如:var numa=3;var numb=6jq= numa + 30 / 2 - numb * 3; / 結(jié)果為0如果我們要改變運算順序,需添加括號的方法來改變優(yōu)先級:var numa=3;var numb=6jq= (numa + 30) / (2 - numb) * 3; /

20、結(jié)果是-24.75操作符之間的優(yōu)先級(高到低):算術(shù)操作符 比較操作符 邏輯操作符 "="賦值符號如果同級的運算是按從左到右次序進(jìn)行,多層括號由里向外。var numa=3;var numb=6;jq= numa + 30 >10 && numb * 3<2; /結(jié)果為false一起組團(tuán)(什么是數(shù)組)我們知道變量用來存儲數(shù)據(jù),一個變量只能存儲一個內(nèi)容。假設(shè)你想存儲10個人的姓名或者存儲20個人的數(shù)學(xué)成績,就需要10個或20個變量來存儲,如果需要存儲更多數(shù)據(jù),那就會變的更麻煩。我們用數(shù)組解決問題,一個數(shù)組變量可以存放多個數(shù)據(jù)。好比一個團(tuán),團(tuán)里有很多

21、人,如下我們使用數(shù)組存儲5個學(xué)生成績。數(shù)組是一個值的集合,每個值都有一個索引號,從0開始,每個索引都有一個相應(yīng)的值,根據(jù)需要添加更多數(shù)值。我們知道變量用來存儲數(shù)據(jù),一個變量只能存儲一個內(nèi)容。假設(shè)你想存儲10個人的姓名或者存儲20個人的數(shù)學(xué)成績,就需要10個或20個變量來存儲,如果需要存儲更多數(shù)據(jù),那就會變的更麻煩。我們用數(shù)組解決問題,一個數(shù)組變量可以存放多個數(shù)據(jù)。好比一個團(tuán),團(tuán)里有很多人,如下我們使用數(shù)組存儲5個學(xué)生成績。數(shù)組是一個值的集合,每個值都有一個索引號,從0開始,每個索引都有一個相應(yīng)的值,根據(jù)需要添加更多數(shù)值。組團(tuán),并給團(tuán)取個名(如何創(chuàng)建數(shù)組)使用數(shù)組之前首先要創(chuàng)建,而且需要把數(shù)組本

22、身賦至一個變量。好比我們出游,要組團(tuán),并給團(tuán)定個名字“云南之旅”。創(chuàng)建數(shù)組語法:var myarray=new Array();           我們創(chuàng)建數(shù)組的同時,還可以為數(shù)組指定長度,長度可任意指定。var myarray= new Array(8); /創(chuàng)建數(shù)組,存儲8個數(shù)據(jù)。 注意:1.創(chuàng)建的新數(shù)組是空數(shù)組,沒有值,如輸出,則顯示undefined。2.雖然創(chuàng)建數(shù)組時,指定了長度,但實際上數(shù)組都是變長的,也就是說即使指定了長度為8,仍然可以將元素存儲在規(guī)定長度以外。誰是團(tuán)里成員(數(shù)組賦值)數(shù)組創(chuàng)建好,接

23、下來我們?yōu)閿?shù)組賦值。我們把數(shù)組看似旅游團(tuán)的大巴車,大巴車?yán)镉泻芏辔恢茫總€位置都有一個號碼,顧客要做在哪個位置呢? 第一步:組個大巴車第二步:按票對號入座 大巴車的1號座位是張三 大巴車的2號座位是李四數(shù)組的表達(dá)方式:第一步:創(chuàng)建數(shù)組var myarr=new Array(); 第二步:給數(shù)組賦值 myarr1=" 張三" myarr2=" 李四"下面創(chuàng)建一個數(shù)組,用于存儲5個人的數(shù)學(xué)成績。var myarray=new Array(); /創(chuàng)建一個新的空數(shù)組myarray0=66; /存儲第1個人的成績myarray1=80; /存儲第2個人

24、的成績myarray2=90; /存儲第3個人的成績myarray3=77; /存儲第4個人的成績myarray4=59; /存儲第5個人的成績注意:數(shù)組每個值有一個索引號,從0開始。我們還可以用簡單的方法創(chuàng)建上面的數(shù)組和賦值:第一種方法:var myarray = new Array(66,80,90,77,59);/創(chuàng)建數(shù)組同時賦值第二種方法: var myarray = 66,80,90,77,59;/直接輸入一個數(shù)組(稱 “字面量數(shù)組”)注意:數(shù)組存儲的數(shù)據(jù)可以是任何類型(數(shù)字、字符、布爾值等) 團(tuán)里添加新成員(向數(shù)組增加一個新元素)上一節(jié)中,我們使用myarray變量存儲了

25、5個人的成績,現(xiàn)在多出一個人的成績,如何存儲呢? 只需使用下一個未用的索引,任何時刻可以不斷向數(shù)組增加新元素。myarray5=88; /使用一個新索引,為數(shù)組增加一個新元素呼叫團(tuán)里成員(使用數(shù)組元素)我們知道數(shù)組中的每個值有一個索引號,從0開始,如下圖, myarray變量存儲6個人的成績: 要得到一個數(shù)組元素的值,只需引用數(shù)組變量并提供一個索引,如:第一個人的成績表示方法:myarray0第三個人的成績表示方法: myarray2了解成員數(shù)量(數(shù)組屬性length)如果我們想知道數(shù)組的大小,只需引用數(shù)組的一個屬性length。Length屬性表示數(shù)組的長度,即

26、數(shù)組中元素的個數(shù)。語法:myarray.length; /獲得數(shù)組myarray的長度注意:因為數(shù)組的索引總是由0開始,所以一個數(shù)組的上下限分別是:0和length-1。如數(shù)組的長度是5,數(shù)組的上下限分別是0和4。var arr=55,32,5,90,60,98,76,54;/包含8個數(shù)值的數(shù)組arr document.write(arr.length); /顯示數(shù)組長度8document.write(arr7); /顯示第8個元素的值54同時,JavaScript數(shù)組的length屬性是可變的,這一點需要特別注意。arr.length=10; /增大數(shù)組的長度document.write(a

27、rr.length); /數(shù)組長度已經(jīng)變?yōu)?0數(shù)組隨元素的增加,長度也會改變,如下:var arr=98,76,54,56,76; / 包含5個數(shù)值的數(shù)組document.write(arr.length); /顯示數(shù)組的長度5arr15=34; /增加元素,使用索引為15,賦值為34alert(arr.length); /顯示數(shù)組的長度16二維數(shù)組一級數(shù)組,我們看成一組盒子,每個盒子只能放一個內(nèi)容。一維數(shù)組的表示: myarray 二維數(shù)組,我們看成一組盒子,不過每個盒子里還可以放多個盒子。二維數(shù)組的表示: myarray 注意: 二維數(shù)組的兩個維度的索引值也是從0開始,兩個維度的

28、最后一個索引值為長度-1。 1. 二維數(shù)組的定義方法一var myarr=new Array(); /先聲明一維 for(var i=0;i<2;i+) /一維長度為2 myarri=new Array(); /在聲明二維 for(var j=0;j<3;j+) /二維長度為3 myarrij=i+j; / 賦值,每個數(shù)組元素的值為i+j 注意: 關(guān)于for 循環(huán)語句,請看第四章4-5 。將上面二維數(shù)組,用表格的方式表示:2. 二維數(shù)組的定義方法二var Myarr = 0 , 1 , 2 ,1 , 2 , 3, 3. 賦值myarr01=5

29、; /將5的值傳入到數(shù)組中,覆蓋原有值。說明: myarr01 ,0 表示表的行,1表示表的列。做判斷(if語句)if語句是基于條件成立才執(zhí)行相應(yīng)代碼時使用的語句。語法:if(條件) 條件成立時執(zhí)行代碼注意:if小寫,大寫字母(IF)會出錯!假設(shè)你應(yīng)聘web前端技術(shù)開發(fā)崗位,如果你會HTML技術(shù),你面試成功,歡迎加入公司。代碼表示如下:<script type="text/javascript"> var mycarrer = "HTML" if (mycarrer = "HTML") doc

30、ument.write("你面試成功,歡迎加入公司。"); </script>二選一 (if.else語句)if.else語句是在指定的條件成立時執(zhí)行代碼,在條件不成立時執(zhí)行else后的代碼。語法:if(條件) 條件成立時執(zhí)行的代碼else條件不成立時執(zhí)行的代碼假設(shè)你應(yīng)聘web前端技術(shù)開發(fā)崗位,如果你會HTML技術(shù),你面試成功,歡迎加入公司,否則你面試不成功,不能加入公司。代碼表示如下:<script type="text/javascript"> var mycarrer = "HTML" /mycarrer

31、變量存儲技能 if (mycarrer = "HTML") document.write("你面試成功,歡迎加入公司。"); else /否則,技能不是HTML document.write("你面試不成功,不能加入公司。");</script>多重判斷(if.else嵌套語句)要在多組語句中選擇一組來執(zhí)行,使用if.else嵌套語句。語法:if(條件1) 條件1成立時執(zhí)行的代碼else if(條件2) 條件2成立時執(zhí)行的代碼.else if(條件n) 條件n成立時執(zhí)行的代碼else 條件1、2至n不成立時執(zhí)行的代碼假設(shè)數(shù)

32、學(xué)考試,小明考了86分,給他做個評價,60分以下的不及格,60(包含60分)-75分為良好,75(包含75分)-85分為很好,85(包含75分)-100優(yōu)秀。代碼表示如下:結(jié)果:多種選擇(Switch語句)當(dāng)有很多種選項的時候,switch比if else使用更方便。語法:switch(表達(dá)式)case值1: 執(zhí)行代碼塊 1 break;case值2: 執(zhí)行代碼塊 2 break;.case值n: 執(zhí)行代碼塊 n break;default: 與 case值1 、 case值2.case值n 不同時執(zhí)行的代碼語法說明:Switch必須賦初始值,值與每個case值匹配。滿足執(zhí)行該 case 后的

33、所有語句,并用break語句來阻止運行下一個case。如所有case值都不匹配,執(zhí)行default后的語句。假設(shè)評價學(xué)生的考試成績,10分滿分制,我們按照每一分一個等級將成績分等,并根據(jù)成績的等級做出不同的評價。代碼如下:執(zhí)行結(jié)果:評語: 及格,加油!注意:記得在case所執(zhí)行的語句后添加上一個break語句。否則就直接繼續(xù)執(zhí)行下面的case中的語句,看以下代碼:執(zhí)行結(jié)果:評語: 繼續(xù)努力!評語: 及格,加油!評語: 湊合,奮進(jìn)評語: 很棒,很棒評語: 高手,大牛在上面的代碼中,沒有break停止語句,如果成績是4分,則case 5后面的語句將會得到執(zhí)行,同樣,case6、7-10后面的語句都

34、會得到執(zhí)行。重復(fù)重復(fù)(for循環(huán))很多事情不只是做一次,要重復(fù)做。如打印10份試卷,每次打印一份,重復(fù)這個動作,直到打印完成。這些事情,我們使用循環(huán)語句來完成,循環(huán)語句,就是重復(fù)執(zhí)行一段代碼。for語句結(jié)構(gòu):for(初始化變量;循環(huán)條件;循環(huán)迭代)       循環(huán)語句  假如,一個盒子里有6個球,我們每次取一個,重復(fù)從盒中取出球,直到球取完為止。<script type="text/javascript">var num=1;for (num=1;num<=6;num+)  /初始化值

35、;循環(huán)條件;循環(huán)后條件值更新  document.write("取出第"+num+"個球<br />");</script>結(jié)果:執(zhí)行思路:反反復(fù)復(fù)(while循環(huán))和for循環(huán)有相同功能的還有while循環(huán), while循環(huán)重復(fù)執(zhí)行一段代碼,直到某個條件不再滿足。while語句結(jié)構(gòu):while(判斷條件) 循環(huán)語句 使用while循環(huán),完成從盒子里取球的動作,每次取一個,共6個球。<script type="text/javascript">var num=0; /初始化值while (

36、num<=6) /條件判斷 document.write("取出第"+num+"個球<br />"); num=num+1; /條件值更新</script>來來回回(Do.while循環(huán))do while結(jié)構(gòu)的基本原理和while結(jié)構(gòu)是基本相同的,但是它保證循環(huán)體至少被執(zhí)行一次。因為它是先執(zhí)行代碼,后判斷條件,如果條件為真,繼續(xù)循環(huán)。do.while語句結(jié)構(gòu):do    循環(huán)語句 while(判斷條件)我們試著輸出5個數(shù)字。<script type="text/javascrip

37、t">   num= 1;   do        document.write("數(shù)值為:" +  num+"<br />");     num+; /更新條件      while (num<=5)</script>執(zhí)行結(jié)果:為什么呢?我們來看下執(zhí)行思路:退出循環(huán)break在while、for、do.while、whi

38、le循環(huán)中使用break語句退出當(dāng)前循環(huán),直接執(zhí)行后面的代碼。格式如下:for(初始條件;判斷條件;循環(huán)后條件值更新) if(特殊情況) break; 循環(huán)代碼當(dāng)遇到特殊情況的時候,循環(huán)就會立即結(jié)束??纯聪旅娴睦樱敵?0個數(shù),如果數(shù)值為5,就停止輸出。 執(zhí)行結(jié)果:注:當(dāng)num=5的時候循環(huán)就會結(jié)束,不會輸出后面循環(huán)的內(nèi)容。繼續(xù)循環(huán)continuecontinue的作用是僅僅跳過本次循環(huán),而整個循環(huán)體繼續(xù)執(zhí)行。語句結(jié)構(gòu):for(初始條件;判斷條件;循環(huán)后條件值更新) if(特殊情況) continue; 循環(huán)代碼上面的循環(huán)中,當(dāng)特殊情況發(fā)生的時候,本次循環(huán)將被跳過,而后續(xù)的循環(huán)則不

39、會受到影響。好比輸出10個數(shù)字,如果數(shù)字為5就不輸出了。執(zhí)行結(jié)果:注:上面的代碼中,num=5的那次循環(huán)將被跳過。什么是函數(shù)函數(shù)的作用,可以寫一次代碼,然后反復(fù)地重用這個代碼。如:我們要完成多組數(shù)和的功能。var sum; sum = 3+2;alert(sum);sum=7+8 ;alert(sum); . /不停重復(fù)兩行代碼如果要實現(xiàn)8組數(shù)的和,就需要16行代碼,實現(xiàn)的越多,代碼行也就越多。所以我們可以把完成特定功能的代碼塊放到一個函數(shù)里,直接調(diào)用這個函數(shù),就省去重復(fù)輸入大量代碼的麻煩。使用函數(shù)完成:function add2(a,b)sum = a + b; alert(sum); /

40、只需寫一次就可以add2(3,2);add2(7,8);. /只需調(diào)用函數(shù)就可以 定義函數(shù)如何定義一個函數(shù)呢?看看下面的格式:function 函數(shù)名( ) 函數(shù)體;function定義函數(shù)的關(guān)鍵字,“函數(shù)名”你為函數(shù)取的名字,“函數(shù)體”替換為完成特定功能的代碼。我們完成對兩個數(shù)求和并顯示結(jié)果的功能。并給函數(shù)起個有意義的名字:“add2”,代碼如下:<script type="text/javascript"> function add2() sum = 3 + 2; alert(sum); add2();</script>結(jié)果: 

41、;函數(shù)調(diào)用函數(shù)定義好后,是不能自動執(zhí)行的,需要調(diào)用它,直接在需要的位置寫函數(shù)名。第一種情況:在<script>標(biāo)簽內(nèi)調(diào)用。 <script type="text/javascript"> function add2()  sum = 1 + 1; alert(sum); add2();/調(diào)用函數(shù),直接寫函數(shù)名。</SCRIPT>第二種情況:在HTML文件中調(diào)用,如通過點擊按鈕后調(diào)用定義好的函數(shù)。<html><head><script type="text/javascript"&

42、gt; function add2()  sum = 5 + 6; alert(sum); </script></head><body><form><input type="button" value="click it" onclick="add2()"> /按鈕,onclick點擊事件,直接寫函數(shù)名</form></body></html>注意:鼠標(biāo)事件會在后面講解。有參數(shù)的函數(shù)上節(jié)中add2()函數(shù)不能實現(xiàn)任意指定兩數(shù)相加。

43、其實,定義函數(shù)還可以如下格式:function 函數(shù)名(參數(shù)1,參數(shù)2) 函數(shù)代碼注意:參數(shù)可以多個,根據(jù)需要增減參數(shù)個數(shù)。參數(shù)之間用(逗號,)隔開。按照這個格式,函數(shù)實現(xiàn)任意兩個數(shù)的和應(yīng)該寫成:function add2(x,y) sum = x + y; document.write(sum);x和y則是函數(shù)的兩個參數(shù),調(diào)用函數(shù)的時候,我們可通過這兩個參數(shù)把兩個實際的加數(shù)傳遞給函數(shù)了。例如,add2(3,4)會求3+4的和,add2(60,20)則會求出60和20的和。返回值的函數(shù)思考:上一節(jié)函數(shù)中,通過"document.write"把結(jié)果輸出來,如果想對函數(shù)的結(jié)果進(jìn)

44、行處理怎么辦呢?我們只要把"document.write(sum)"這行改成如下代碼:function add2(x,y) sum = x + y; return sum; /返回函數(shù)值,return后面的值叫做返回值。還可以通過變量存儲調(diào)用函數(shù)的返回值,代碼如下:result = add2(3,4);/語句執(zhí)行后,result變量中的值為7。注意:函數(shù)中參數(shù)和返回值不只是數(shù)字,還可以是字符串等其它類型。 document.write(" 6 和 3 的較大值是:" +vs(6,3);注意 函數(shù)調(diào)用形式<input type="

45、button" value="click it" onclick="add2()"> (有無引號)什么是事件JavaScript 創(chuàng)建動態(tài)頁面。事件是可以被 JavaScript 偵測到的行為。 網(wǎng)頁中的每個元素都可以產(chǎn)生某些可以觸發(fā) JavaScript 函數(shù)或程序的事件。比如說,當(dāng)用戶單擊按鈕或者提交表單數(shù)據(jù)時,就發(fā)生一個鼠標(biāo)單擊(onclick)事件,需要瀏覽器做出處理,返回給用戶一個結(jié)果。主要事件表:鼠標(biāo)單擊事件( onclick )onclick是鼠標(biāo)單擊事件,當(dāng)在網(wǎng)頁上單擊鼠標(biāo)時,就會發(fā)生該事件。同時onclick事

46、件調(diào)用的程序塊就會被執(zhí)行,通常與按鈕一起使用。比如,我們單擊按鈕時,觸發(fā) onclick 事件,并調(diào)用兩個數(shù)和的函數(shù)add2()。代碼如下:<html><head>  <script type="text/javascript">  function add2()  var numa,numb,sum;  numa=6;  numb=8;  sum=numa+numb;  document.write("兩數(shù)和為:"+sum);

47、  </script></head><body> <form> <input name="button" type="button" value="點擊提交" onclick="add2()" /> </form></body></html>注意: 在網(wǎng)頁中,如使用事件,就在該元素中設(shè)置事件屬性。 鼠標(biāo)經(jīng)過事件(onmouseover)鼠標(biāo)經(jīng)過事件,當(dāng)鼠標(biāo)移到一個對象上時,該對象就觸發(fā)onm

48、ouseover事件,并執(zhí)行onmouseover事件調(diào)用的程序。現(xiàn)實鼠標(biāo)經(jīng)過"確定"按鈕時,觸發(fā)onmouseover事件,調(diào)用函數(shù)info(),彈出消息框,代碼如下:運行結(jié)果:鼠標(biāo)移開事件(onmouseout)鼠標(biāo)移開事件,當(dāng)鼠標(biāo)移開當(dāng)前對象時,執(zhí)行onmouseout調(diào)用的程序。當(dāng)把鼠標(biāo)移動到"登錄"按鈕上,然后再移開時,觸發(fā)onmouseout事件,調(diào)用函數(shù)message(),代碼如下:運行結(jié)果: 光標(biāo)聚焦事件(onfocus)當(dāng)網(wǎng)頁中的對象獲得聚點時,執(zhí)行onfocus調(diào)用的程序就會被執(zhí)行。如下代碼, 當(dāng)將光標(biāo)移到文本框內(nèi)時,即焦點

49、在文本框內(nèi),觸發(fā)onfocus 事件,并調(diào)用函數(shù)message()。運行結(jié)果:失焦事件(onblur)onblur事件與onfocus是相對事件,當(dāng)光標(biāo)離開當(dāng)前獲得聚焦對象的時候,觸發(fā)onblur事件,同時執(zhí)行被調(diào)用的程序。如下代碼, 網(wǎng)頁中有用戶和密碼兩個文本框。當(dāng)前光標(biāo)在用戶文本框內(nèi)時(即焦點在文本框),在光標(biāo)離開該文本框后(即失焦時),觸發(fā)onblur事件,并調(diào)用函數(shù)message()。運行結(jié)果:內(nèi)容選中事件(onselect)選中事件,當(dāng)文本框或者文本域中的文字被選中時,觸發(fā)onselect事件,同時調(diào)用的程序就會被執(zhí)行。如下代碼,當(dāng)選中用戶文本框內(nèi)的文字時,觸發(fā)onselect 事件

50、,并調(diào)用函數(shù)message()。運行結(jié)果:文本框內(nèi)容改變事件(onchange)通過改變文本框的內(nèi)容來觸發(fā)onchange事件,同時執(zhí)行被調(diào)用的程序。如下代碼,當(dāng)用戶將文本框內(nèi)的文字改變后,彈出對話框“您改變了文本內(nèi)容!”。運行結(jié)果:加載事件(onload)事件會在頁面加載完成后,立即發(fā)生,同時執(zhí)行被調(diào)用的程序。注意:1. 加載頁面時,觸發(fā)onload事件,事件寫在<body>標(biāo)簽內(nèi)。      2. 此節(jié)的加載頁面,可理解為打開一個新頁面時。如下代碼,當(dāng)加載一個新頁面時,彈出對話框“加載中,請稍等”。運行結(jié)果: <script>

51、 function count()var txt1 = parseInt( document.getElementById('txt1').value);var txt2 = parseInt( document.getElementById('txt2').value);var select = document.getElementById('select').value;var result = ''switch (select) case '+':result = txt1 + txt2;break;cas

52、e '-':result = txt1 - txt2;break;case '*':result = txt1 * txt2;break;case '/':result = txt1 / txt2;break; document.getElementById('fruit').value = result; </script> function count() var a=parselnt(document.getElementById("txt1").value); /獲取第一個輸入框的值 var

53、 b=parselnt(document.getElementById("txt2").value); /獲取第二個輸入框的值 var c=document.getElementById("slect").value;/獲取選擇框的值document.getElementById("fruit").value=switch(c) case '+':return(a+b);break; case '-':return(a-b);break; case '*':return(a*b);bre

54、ak; case '/':return(a/b);break; /獲取通過下拉框來選擇的值來改變加減乘除的運算法則 /設(shè)置結(jié)果輸入框的值 什么是對象JavaScript 中的所有事物都是對象,如:字符串、數(shù)值、數(shù)組、函數(shù)等,每個對象帶有屬性和方法。對象的屬性:反映該對象某些特定的性質(zhì)的,如:字符串的長度、圖像的長寬等;對象的方法:能夠在對象上執(zhí)行的動作。例如,表單的“提交”(Submit),時間的“獲取”(getYear)等;JavaScript 提供多個內(nèi)建對象,比如 String、Date、Array 等等,使用對象前先定義,如下使用數(shù)組對象: var objectName

55、 =new Array();/使用new關(guān)鍵字定義對象或者 var objectName =;訪問對象屬性的語法:objectNpertyName如使用 Array 對象的 length 屬性來獲得數(shù)組的長度:var myarray=new Array(6);/定義數(shù)組對象var myl=myarray.length;/訪問數(shù)組長度length屬性以上代碼執(zhí)行后,myl的值將是:6訪問對象的方法:objectName.methodName()如使用string 對象的 toUpperCase() 方法來將文本轉(zhuǎn)換為大寫:var mystr="Hello world!&q

56、uot;/創(chuàng)建一個字符串var request=mystr.toUpperCase(); /使用字符串對象方法以上代碼執(zhí)行后,request的值是:HELLO WORLD!Date 日期對象日期對象可以儲存任意一個日期,并且可以精確到毫秒數(shù)(1/1000 秒)。定義一個時間對象 :var Udate=new Date(); 注意:使用關(guān)鍵字new,Date()的首字母必須大寫。 使 Udate 成為日期對象,并且已有初始值:當(dāng)前時間(當(dāng)前電腦系統(tǒng)時間)。如果要自定義初始值,可以用以下方法:var d = new Date(2012, 10, 1); /2012年10月1日v

57、ar d = new Date('Oct 1, 2012'); /2012年10月1日我們最好使用下面介紹的“方法”來嚴(yán)格定義時間。訪問方法語法:“<日期對象>.<方法>”Date對象中處理時間和日期的常用方法:返回/設(shè)置年份方法get/setFullYear() 返回/設(shè)置年份,用四位數(shù)表示。var mydate=new Date();/當(dāng)前時間2014年3月6日document.write(mydate+"<br>");/輸出當(dāng)前時間document.write(mydate.getFullYear()+&q

58、uot;<br>");/輸出當(dāng)前年份mydate.setFullYear(81); /設(shè)置年份document.write(mydate+"<br>"); /輸出年份被設(shè)定為 0081年。注意:不同瀏覽器, mydate.setFullYear(81)結(jié)果不同,年份被設(shè)定為 0081或81兩種情況。結(jié)果:Thu Mar 06 2014 10:57:47 GMT+08002014Thu Mar 06 0081 10:57:47 GMT+0800注意:1.結(jié)果格式依次為:星期、月、日、年、時、分、秒、時區(qū)。(火狐瀏覽器)2. 不同瀏覽器,時間格

59、式有差異。返回星期方法getDay() 返回星期,返回的是0-6的數(shù)字,0 表示星期天。如果要返回相對應(yīng)“星期”,通過數(shù)組完成,代碼如下:<script type="text/javascript"> var mydate=new Date();/定義日期對象 var weekday="星期日","星期一","星期二","星期三","星期四","星期五","星期六"/定義數(shù)組對象,給每個數(shù)組項賦值 var mynum=mydate.getDay();/返回值存儲在變量mynum中 document.write(mydate.getDay();/輸出g

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論