摘要:下面這條語(yǔ)句將導(dǎo)致語(yǔ)法錯(cuò)誤變量名允許包含字母數(shù)字美元符號(hào)和下劃線但第一個(gè)字符不允許是數(shù)字。可以把一些布爾值存入一個(gè)數(shù)組,還可以把一組數(shù)值存入一個(gè)數(shù)組甚至可以把這種數(shù)據(jù)類(lèi)型混在一起存入一個(gè)數(shù)組數(shù)組元素還可以是變量這將把數(shù)組的第一個(gè)元素賦值為。
執(zhí)行Javascript的方式
第一種方式是將JS代碼放到 < head > 標(biāo)簽中的 < script > 標(biāo)簽之間:
一種更好的方式是將JS代碼存為一個(gè)擴(kuò)展名為.js的獨(dú)立文件。通過(guò) < head >標(biāo)簽中的 < script >標(biāo)簽中的 src 屬性指向該文件:
但最好的做法是把 < script > 標(biāo)簽放到 html 文檔的最后,< /body > 標(biāo)簽之前:
這樣能使瀏覽器更快的加載頁(yè)面。
語(yǔ)句每條語(yǔ)句都以分號(hào)結(jié)尾,并換行(最好的寫(xiě)法,容易閱讀,更容易追蹤JS腳本的執(zhí)行順序):
first statement; second statement;
當(dāng)然也可以放在一行:
first statement;second statement;注釋
注釋能夠有效的幫助了解代碼流程,必須養(yǎng)成良好的注釋習(xí)慣。
JS注釋的3種形式:
//自我提醒,有注釋是好事
/* 自我提醒
有注釋是好事 */
但JS不要求這樣做,它會(huì)把 " - - > " 視為注釋內(nèi)容的一部分。
注意: HTML 允許上面這種注釋跨越多行,但JS要求這種注釋的每行必須開(kāi)頭加上 "< ! - - "來(lái)作為標(biāo)志。
為了避免混淆,最好單行注釋使用 // , 多行注釋使用 /* */
變量var 稱(chēng)為變量,js中可以給變量賦值:
mood = "happy"; age = "13";
在JS中,如果在對(duì)某個(gè)變量賦值之前未聲明,賦值操作將自動(dòng)聲明該變量。雖然JS沒(méi)有強(qiáng)制要求必須提前聲明變量,但提前聲明變量是一種良好的編程習(xí)慣。下面的語(yǔ)句中對(duì)變量 mood 和 age做出了聲明:
var mood; var age;
不必多帶帶聲明每個(gè)變量,也可以用一條語(yǔ)句一次聲明多個(gè)變量:
var mood, age;
甚至可以一石二鳥(niǎo),把聲明變量和對(duì)該變量賦值一次完成:
var mood = "happy"; var age = 33;
甚至還可以像下面這樣:
var mood = "happy", age = 33;
像上面這樣的聲明和賦值是最有效率的做法,這一條語(yǔ)句的效果相當(dāng)于下面這些語(yǔ)句的總和:
var mood, age; mood = "happy"; age = 33;
JS中,變量和其他語(yǔ)法元素的名字都是區(qū)分字母大小寫(xiě)的。例如下面的語(yǔ)句,是在對(duì)兩個(gè)不同的變量進(jìn)行賦值:
var mood = "happy"; Mood = "sad";
JS語(yǔ)法中不允許變量名中包含空格或標(biāo)點(diǎn)符號(hào)(美元符號(hào) " $ " 例外)。下面這條語(yǔ)句將導(dǎo)致語(yǔ)法錯(cuò)誤:
var my mood = "happy";
JS變量名允許包含字母、數(shù)字、美元符號(hào)和下劃線(但第一個(gè)字符不允許是數(shù)字)。為了讓比較長(zhǎng)的變量名更容易閱讀,可以在變量名中的適當(dāng)位置插入下劃線:
var my_mood = "happy";
另一種方式是使用駝峰格式,,刪除中間的空白(下劃線),后面的每個(gè)新單詞改用大寫(xiě)字母開(kāi)頭:
var myMood = "happy";
通常駝峰格式是函數(shù)名、方法名和對(duì)象屬性名的首選格式。
數(shù)據(jù)類(lèi)型在聲明變量的同時(shí)還必須同時(shí)聲明變量的數(shù)據(jù)類(lèi)型,這種做法稱(chēng)為類(lèi)型聲明。
必須明確類(lèi)型聲明的語(yǔ)言稱(chēng)為強(qiáng)類(lèi)型語(yǔ)言。JS不需要進(jìn)行類(lèi)型聲明,因此它是一種弱類(lèi)型語(yǔ)言,可以在任何階段改變變量的數(shù)據(jù)類(lèi)型。
以下語(yǔ)句在強(qiáng)類(lèi)型語(yǔ)言中是非法的,但在JS里卻完全沒(méi)有問(wèn)題:
var age = "thirety three"; age = 33;
JS并不在意變量age的值是一個(gè)字符串還是一個(gè)數(shù)。
字符串字符串由零個(gè)或多個(gè)字符構(gòu)成。字符包括(但不限于)字母、數(shù)字、標(biāo)點(diǎn)符號(hào)和空格。字符串必須包在引號(hào)里,單引號(hào)或雙引號(hào)都可以。下面兩條語(yǔ)句含義完全相同:
var mood = "happy"; var mood = "happy";
JS中可以隨意選用引號(hào),但最好根據(jù)字符串包含的字符來(lái)選擇。如果字符串包含雙引號(hào),就把整個(gè)字符串放在單引號(hào)里;如果字符串包含單引號(hào),就把整個(gè)字符串放在雙引號(hào)里:
var mood = "don"t ask";
如果想再上門(mén)這條語(yǔ)句中使用單引號(hào),就必須保證字符 “n” 和 "t" 之間的單引號(hào)能被當(dāng)成這個(gè)字符串的一部分。這種情況下這個(gè)單引號(hào)需要被看做一個(gè)普通字符,而不是這個(gè)字符串的結(jié)束標(biāo)志。這種情況需要對(duì)這個(gè)字符進(jìn)行轉(zhuǎn)義。在JS中用反斜線對(duì)字符進(jìn)行轉(zhuǎn)義:
var mood = "don"t ask";
類(lèi)似地,如果想用雙引號(hào)來(lái)包住一個(gè)本身就包含雙引號(hào)的字符串,就必須用反斜線對(duì)字符串中的雙引號(hào)進(jìn)行轉(zhuǎn)義:
var height = "about 5"10" tall";
實(shí)際上這些反斜線并不是字符串的一部分。
需要養(yǎng)成一個(gè)良好的編程習(xí)慣,不管選擇用雙引號(hào)還是單引號(hào),在整個(gè)腳本中最好保持一致。如果在同一個(gè)腳本中一會(huì)兒使用雙引號(hào),一會(huì)兒又使用單引號(hào),代碼很快就會(huì)變得難以閱讀和理解。
數(shù)值給變量賦一個(gè)數(shù)值,不用限定數(shù)值必須為一個(gè)整數(shù)。JS允許使用帶小數(shù)點(diǎn)的數(shù)值,并且允許任意位小數(shù),這樣的數(shù)稱(chēng)為浮點(diǎn)數(shù):
var age = 33.25;
也可以使用負(fù)數(shù)。在有關(guān)數(shù)值的前面加上一個(gè)減號(hào)( - )表示它是一個(gè)負(fù)數(shù):
var temperature = -20;
JS也支持負(fù)數(shù)浮點(diǎn)數(shù):
var temperature = -20.3333333;布爾值
布爾數(shù)據(jù)只有兩個(gè)可選值—— ture 或 false。假設(shè)需要這樣一個(gè)變量:如果我正在睡覺(jué),這個(gè)變量將存儲(chǔ)一個(gè)值;如果我沒(méi)在睡覺(jué),這個(gè)變量將儲(chǔ)存另一個(gè)值。可以用字符串?dāng)?shù)據(jù)類(lèi)型把變量賦值為 “sleeping” 或 “not sleeping”。但使用布爾數(shù)據(jù)類(lèi)型是更好的選擇:
var sleeping = ture;
布爾值不是字符串,千萬(wàn)不要把布爾值用引號(hào)括起來(lái)。布爾值 false 與 “false”是兩碼事!
下面這條語(yǔ)句將變量設(shè)置為布爾值ture:
var married = true;
下面這條語(yǔ)句將變量設(shè)置為字符串“ture”:
var married = "true";數(shù)組
字符串、數(shù)值和布爾值都是標(biāo)量。如果某個(gè)變量是標(biāo)量,它在任意時(shí)刻就只能有一個(gè)值。如果想用一個(gè)變量來(lái)存儲(chǔ)一組值,就需使用數(shù)組。
數(shù)組是指用一個(gè)變量表示一個(gè)值的集合,集合中的每個(gè)值都是這個(gè)數(shù)組的一個(gè)元素 (element)。
JS中,數(shù)組可以用關(guān)鍵字Array聲明,聲明數(shù)組的同時(shí)還可以指定數(shù)組初始元素的個(gè)數(shù),也就是這個(gè)數(shù)組的長(zhǎng)度。例如用名位 beatles 的變量來(lái)保存 Beatles 樂(lè)隊(duì)全體四位成員的姓名:
var beatles = Array(4);
有時(shí)無(wú)法預(yù)知某個(gè)數(shù)組有多少個(gè)元素。JS根本不要求在聲明數(shù)組時(shí)必須給出元素個(gè)數(shù),我們完全可以在聲明數(shù)組時(shí)不給出元素個(gè)數(shù):
var beatles = Array();
向數(shù)組中添加元素的操作稱(chēng)為填充。在填充數(shù)組時(shí),不僅需要給新元素的值,還需要給出新元素在數(shù)組中的存放位置,這個(gè)位置就是這個(gè)元素的下標(biāo)。數(shù)組里一個(gè)元素配有一個(gè)下標(biāo)。下標(biāo)必須用方括號(hào)括起來(lái):
array[index] = element;
按照 Beatles 樂(lè)隊(duì)成員的傳統(tǒng)順序(即 John、Paul、George 和 Ringo)進(jìn)行填充。第一個(gè):
beatles[0] = "John";
用 0 而不是 1 作為第一個(gè)下標(biāo)是JS里的一條規(guī)則。
聲明和填充 beatles 數(shù)組的全過(guò)程:
var beatles = Array(4); beatles[0] = "John"; beatles[1] = "Paul"; beatles[2] = "George"; beatles[3] = "Ringo";
現(xiàn)在可以通過(guò) 下標(biāo)值 “2” ( beatles[2] ) 來(lái)獲取元素 "George"。
特別注意, beatles 數(shù)組的長(zhǎng)度是 4,但是數(shù)組最后一個(gè)元素的下標(biāo)卻是 3,因?yàn)閿?shù)組是從 0 開(kāi)始計(jì)數(shù)的。
有一種相對(duì)簡(jiǎn)單的填充方式:在聲明數(shù)組的同時(shí)對(duì)它進(jìn)行填充。這種方式要求用逗號(hào)把各個(gè)元素隔開(kāi):
var beatles = array( "John", "Paul", "George", "Ringo" );
上面這條語(yǔ)句會(huì)為每個(gè)元素自動(dòng)分配一個(gè)下標(biāo):第一個(gè)下標(biāo)是 0 ,第二個(gè)是 1,依次類(lèi)推。因此,beatles[2] 仍將對(duì)應(yīng)于取值為 “George” 的元素。
甚至用不著明確地表明我們是在創(chuàng)建數(shù)組。事實(shí)上,只需要用一對(duì)方括號(hào)把各個(gè)元素的初始值括起來(lái)就可以了:
var beatles = [ "John", "Paul", "George", "Ringo" ];
數(shù)組元素不必非得是字符串。可以把一些布爾值存入一個(gè)數(shù)組,還可以把一組數(shù)值存入一個(gè)數(shù)組:
var years = [ 1940, 1941, 1942, 1943 ];
甚至可以把這 3 種數(shù)據(jù)類(lèi)型混在一起存入一個(gè)數(shù)組:
var lennon = [ "John", 1940, false ];
數(shù)組元素還可以是變量:
var name = "John"; beatles[0] = name;
這將把 beatles 數(shù)組的第一個(gè)元素賦值為 “John”。
數(shù)組元素的值還可以是另一個(gè)數(shù)組的元素。下面兩條語(yǔ)句將把 beatles 數(shù)組的第二個(gè)元素賦值為 “Paul”:
var names = [ "Ringo", "John", "Paul", "George" ]; beatles[1] = names[3];
數(shù)組中還可以包含其他的數(shù)組,數(shù)組中的任何一個(gè)元素都可以把一個(gè)數(shù)組作為它的值:
var lennon = [ "John", 1940, false ]; var beatles = []; beatles[0] = lennon;
現(xiàn)在 beatles 數(shù)組的第一個(gè)元素的值就是另一個(gè)數(shù)組。想要獲取那個(gè)數(shù)組里的某個(gè)元素的值,需要使用更多的方括號(hào)。 beatles0的值是“John”, beatles0的值是 1940, beatles0的值是 false。
關(guān)聯(lián)數(shù)組如果在填充數(shù)組時(shí)只給出了元素的值,這個(gè)數(shù)組就將使一個(gè)傳統(tǒng)數(shù)組,它的各個(gè)元素的下標(biāo)將會(huì)自動(dòng)創(chuàng)建和刷新。
可以通過(guò)在填充數(shù)組時(shí)為每個(gè)新元素明確地給出下標(biāo)來(lái)改變這種默認(rèn)的行為。在為新元素給出下標(biāo)時(shí),不比局限于使用整數(shù)數(shù)字。可以使用字符串:
var lennon = Array(); lennon["name"] = "John"; lennon["year"] = 1940; lennon["living"] = false;
這樣的數(shù)組叫做關(guān)聯(lián)數(shù)組。由于可以使用字符串來(lái)代替數(shù)字值,使代碼更具有可讀性。這種做法并不是一個(gè)好習(xí)慣,不推薦使用。理想情況下,不應(yīng)該修改Array對(duì)象的屬性,二應(yīng)該使用通用的對(duì)象( Object )。
對(duì)象對(duì)象是自包含的數(shù)據(jù)集合,包含在對(duì)象里的數(shù)據(jù)可以通過(guò)屬性和方法兩種形式訪問(wèn)。
屬性是隸屬于某個(gè)特定對(duì)象的變量
方法是只有某個(gè)特定對(duì)象才能調(diào)用的函數(shù)
對(duì)象是由一些屬性和方法組合在一起而構(gòu)成的一個(gè)數(shù)據(jù)實(shí)體。
在JS離,屬性和方法都使用 “點(diǎn)” 語(yǔ)法來(lái)訪問(wèn):
Object.property //屬性 Object.method() //方法
假如對(duì)象的名字是Person,需要使用對(duì)象的屬性必須使用如下記號(hào):
Person.mood Person.age
假如 Person 對(duì)象還關(guān)聯(lián)著一些諸如 walk() 和 sleep() 之類(lèi)的函數(shù),這些函數(shù)就是這個(gè)對(duì)象的犯法,需要使用如下記號(hào)來(lái)訪問(wèn):
Person,walk() Person.sleep()
為了使用 Person 對(duì)象來(lái)描述一個(gè)特定的人,需要?jiǎng)?chuàng)建一個(gè) Person 對(duì)象的實(shí)例。實(shí)例是對(duì)象的具體個(gè)體。例如你和我都是人,都可以用 Person 對(duì)象來(lái)描述;但你和我是兩個(gè)不同的個(gè)體,很可能有著不同的屬性(例如,年齡可能不一樣)。因此,你和我對(duì)應(yīng)這兩個(gè)不同的 Person 對(duì)象,雖然它們都是 Person 對(duì)象,但它們是兩個(gè)不同的實(shí)例。
為給定對(duì)象創(chuàng)建一個(gè)新實(shí)例需要使用 new 關(guān)鍵字:
var jeremy = new Person;
這條語(yǔ)句將創(chuàng)建出 Person 對(duì)象的一個(gè)新實(shí)例 jeremy。之后可以像下面這樣利用 Person 對(duì)象的屬性來(lái)檢索關(guān)于 jeremy 的信息:
jeremy.age jeremy.mood內(nèi)建對(duì)象
數(shù)據(jù)就是一種內(nèi)建對(duì)象。當(dāng)使用new關(guān)鍵字去初始化一個(gè)數(shù)組時(shí),其實(shí)是在創(chuàng)建一個(gè)Array對(duì)象的新實(shí)例:
var beatles = new Array();
當(dāng)需要了解某個(gè)數(shù)組有多少個(gè)元素時(shí),利用Array對(duì)象的length屬性來(lái)獲得這一信息:
beatles.lenggth;
Array對(duì)象知識(shí)諸多JavaScript內(nèi)建對(duì)象中的一種。其他例子包括Math對(duì)象和Date對(duì)象,它們分別提供了許多非常有用的方法供人們處理數(shù)值和日期值。例如,Math對(duì)象的round方法可以把十進(jìn)制數(shù)值舍入為一個(gè)與之最接近的整數(shù):
var num = 7.561; var num = Math.round(num); alert(num);
Date對(duì)象可以用來(lái)存儲(chǔ)和檢索與特定日期和時(shí)間有關(guān)的信息。在創(chuàng)建Date對(duì)象的新實(shí)例時(shí),JavaScript解釋器將自動(dòng)地使用當(dāng)前日期和時(shí)間對(duì)它進(jìn)行初始化:
var current_date = new Date();
Date對(duì)象提供了getDay()、getHours()、getMonth()等一系列方法,以供人們用來(lái)檢索與特定日期有關(guān)的各種信息。例如,getDay()方法可以告訴我們給定日期是星期幾:
var today = current_date.getDay)_;宿主對(duì)象
除了內(nèi)建對(duì)象,還可以在JavaScript腳本里使用一些已經(jīng)預(yù)先定義好的其他對(duì)象。這些對(duì)象不是由JavaScript語(yǔ)言本身而是由它的運(yùn)行壞境提供的。具體到Web應(yīng)用,這個(gè)壞境就是瀏覽器。由瀏覽器提供的預(yù)定義對(duì)象被稱(chēng)為宿主對(duì)象。
宿主對(duì)象包括Form、Image和Element等。可以通過(guò)這些對(duì)象獲得關(guān)于網(wǎng)頁(yè)上表單、圖像和各種表單元素等信息。還有一個(gè)宿主對(duì)象也能用來(lái)獲得網(wǎng)頁(yè)上的任何一個(gè)元素的信息,它就是document對(duì)象。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/54352.html
摘要:也就是說(shuō),仍將看到一條消息。這些語(yǔ)句執(zhí)行完畢后,變量的值將是,盡管循環(huán)控制條件的求值結(jié)果是。循環(huán)最常見(jiàn)的用途之一是對(duì)某個(gè)數(shù)組里的全體元素進(jìn)行遍歷處理。變量對(duì)于數(shù)組中每個(gè)元素都是從開(kāi)始按遞增。 循環(huán)語(yǔ)句 if語(yǔ)句唯一的不足是無(wú)法完成重復(fù)性的操作。在if語(yǔ)句里,包含在花括號(hào)里的代碼塊只能執(zhí)行一次。如果需要多次執(zhí)行同一個(gè)代碼塊,就必須使用循環(huán)語(yǔ)句。 while循環(huán) while循環(huán)與if語(yǔ)句非...
摘要:事實(shí)上,每個(gè)函數(shù)實(shí)際是一個(gè)短小的腳本。先對(duì)函數(shù)做出定義再調(diào)用是一個(gè)良好的編程習(xí)慣。可以將不同的數(shù)據(jù)傳遞給它們,而它們將使用這些數(shù)據(jù)去完成預(yù)定的操作。傳遞給函數(shù)的數(shù)據(jù)稱(chēng)為參數(shù)。這個(gè)例子中,變量的值將是,這個(gè)數(shù)值由函數(shù)返回。 函數(shù) 如果需要多次使用同一段代碼,可以把它們封裝成一個(gè)函數(shù)。函數(shù)就是一組允許在你的代碼里隨時(shí)調(diào)用的語(yǔ)句。事實(shí)上,每個(gè)函數(shù)實(shí)際是一個(gè)短小的腳本。 先對(duì)函數(shù)做出定義再調(diào)用...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
摘要:邏輯非操作符只能作用于單個(gè)邏輯操作數(shù),其結(jié)果是把那個(gè)邏輯操作數(shù)所返回的布爾值取反。如果那個(gè)邏輯操作數(shù)所返回的布爾值是,邏輯非操作符將把它取反為為了避免產(chǎn)生歧義,上面這條語(yǔ)句把邏輯操作數(shù)放在了括號(hào)里,使邏輯非操作符作用于括號(hào)里的所有內(nèi)容。 算術(shù)操作符 加減乘除這些算術(shù)操作中的每一種都必須借助于相應(yīng)的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號(hào)。等號(hào)(=)、加...
摘要:可以創(chuàng)建一個(gè)函數(shù)并讓它返回一個(gè)數(shù)值一個(gè)字符串一個(gè)數(shù)組或一個(gè)布爾值。操作符可以告訴我們它的操作數(shù)是一個(gè)字符串?dāng)?shù)值函數(shù)布爾值還是對(duì)象,例如在瀏覽器中加載這個(gè)例子時(shí),會(huì)彈出一個(gè)對(duì)話框,報(bào)告的類(lèi)型它是一個(gè)對(duì)象。 函數(shù) 如果需要多次使用同一段代碼,可以把它們封裝成一個(gè)函數(shù)。函數(shù)就是一組允許在你的代碼里隨時(shí)調(diào)用的語(yǔ)句。事實(shí)上,每個(gè)函數(shù)實(shí)際是一個(gè)短小的腳本。 先對(duì)函數(shù)做出定義再調(diào)用是一個(gè)良好的編程習(xí)...
閱讀 2110·2023-04-26 02:41
閱讀 2154·2021-09-24 09:47
閱讀 1560·2019-08-30 15:53
閱讀 1215·2019-08-30 13:01
閱讀 1895·2019-08-29 11:27
閱讀 2870·2019-08-28 17:55
閱讀 1781·2019-08-26 14:00
閱讀 3394·2019-08-26 10:18