国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

《JavaScript Dom編程藝術(shù)》讀書(shū)筆記(一)

lewinlee / 1839人閱讀

摘要:下面這條語(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

相關(guān)文章

  • JavaScript Dom編程藝術(shù)讀書(shū)筆記(三)

    摘要:也就是說(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ǔ)句非...

    xbynet 評(píng)論0 收藏0
  • JavaScript Dom編程藝術(shù)讀書(shū)筆記(四)

    摘要:事實(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)用...

    JellyBool 評(píng)論0 收藏0
  • JavaScript Dom編程藝術(shù)讀書(shū)筆記(二)

    摘要:邏輯非操作符只能作用于單個(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)(=)、加...

    caspar 評(píng)論0 收藏0
  • JavaScript Dom編程藝術(shù)讀書(shū)筆記(二)

    摘要:邏輯非操作符只能作用于單個(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)(=)、加...

    xingpingz 評(píng)論0 收藏0
  • JavaScript Dom編程藝術(shù)讀書(shū)筆記(二)

    摘要:邏輯非操作符只能作用于單個(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)(=)、加...

    Aceyclee 評(píng)論0 收藏0
  • JavaScript Dom編程藝術(shù)讀書(shū)筆記(五)

    摘要:可以創(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í)...

    levy9527 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

lewinlee

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<