函數(shù)、數(shù)組葫哗、對象

函數(shù)

函數(shù)就是封裝了一段可被重復(fù)調(diào)用執(zhí)行的代碼塊缔刹。通過此代碼塊可以實(shí)現(xiàn)大量代碼的重復(fù)使用。

創(chuàng)建函數(shù)

一劣针、聲明函數(shù)

function 函數(shù)名(形參校镐,....) {? ? 函數(shù)體代碼}

注:function 是聲明函數(shù)的關(guān)鍵字,必須小寫。

二捺典、匿名函數(shù)

var? 變量 = function(){? }

三鸟廓、箭頭函數(shù)

var 變量=(只有一個參數(shù)可不寫)=>{只有一行代碼可以不寫大括號};

調(diào)用函數(shù)?

函數(shù)名(實(shí)參襟己,....)引谜;通過調(diào)用函數(shù)名來執(zhí)行函數(shù)體代碼

形參:函數(shù)定義時設(shè)置接收調(diào)用時傳入

實(shí)參:函數(shù)調(diào)用時傳入小括號內(nèi)的真實(shí)數(shù)據(jù)

注:函數(shù)形參和實(shí)參數(shù)量不匹配時則

(1)實(shí)參個數(shù)大于形參:只取到形參的個數(shù)‘

(2)實(shí)參個數(shù)小于形參:多的形參定義為undefined,結(jié)果為NaN擎浴。

函數(shù)的封裝

函數(shù)的封裝是把一個或者多個功能通過函數(shù)的方式封裝起來员咽,對外只提供一個簡單的函數(shù)接口。

return 關(guān)鍵字

在使用 return 語句時贮预,函數(shù)會停止執(zhí)行贝室,并返回指定的值,如果函數(shù)沒有 return 仿吞,返回的值是 undefined滑频,return 之后的代碼將不再執(zhí)行(只可在函數(shù)體中使用)。

break ,continue ,return 的區(qū)別

break :結(jié)束當(dāng)前的循環(huán)體(如 for唤冈、while)峡迷。

continue :跳出本次循環(huán),繼續(xù)執(zhí)行下次循環(huán)(如 for你虹、while)绘搞。

return :不僅可以退出循環(huán)彤避,還能夠返回 return 語句中的值,同時還可以結(jié)束當(dāng)前的函數(shù)體內(nèi)的代碼看杭。


數(shù)組

數(shù)組的概念

數(shù)組可以把一組相關(guān)的數(shù)據(jù)一起存放忠藤,并提供方便的訪問(獲取)方式楼雹。

數(shù)組是指一組數(shù)據(jù)的集合模孩,其中的每個數(shù)據(jù)被稱作元素,在數(shù)組中可以存放任意類型的元素贮缅。數(shù)組是一種將一組數(shù)據(jù)存儲在單個變量名下的優(yōu)雅方式榨咐。

創(chuàng)建數(shù)組

一、利用? new 創(chuàng)建數(shù)組 :

var 數(shù)組名 = new Array() 谴供;

注意?: Array () 块茁,A 要大寫 .

二、利用數(shù)組字面量創(chuàng)建數(shù)組:

var? 數(shù)組名 = [ ]桂肌;

例如:var 數(shù)組名 = ['小白','小黑','大黃','瑞奇'];

(1)數(shù)組的字面量是方括號 [ ]

(2)聲明數(shù)組并賦值稱為數(shù)組的初始化

(3)這種字面量方式也是我們以后最多使用的方式

獲取數(shù)組中的元素

索引 (下標(biāo)) :用來訪問數(shù)組元素的序號(數(shù)組下標(biāo)從 0 開始)数焊。

數(shù)組可以通過索引來訪問、設(shè)置崎场、修改對應(yīng)的數(shù)組元素佩耳,

可以通過“**數(shù)組名[索引]**”的形式來獲取數(shù)組中的元素。

注意:如果訪問時數(shù)組沒有和索引值對應(yīng)的元素谭跨,則得到的值是undefined

遍歷數(shù)組

數(shù)組遍歷: 把數(shù)組中的每個元素從頭到尾都訪問一次(類似學(xué)生的點(diǎn)名)干厚。

可以通過 for 循環(huán)索引遍歷數(shù)組中的每一項(xiàng)。

例如:

var arr = ['red','green', 'blue'];

for(var i = 0; i < arr.length; i++){? ??

console.log(arrStus[i]);

}

數(shù)組的長度:默認(rèn)情況下表示數(shù)組中元素的個數(shù)

使用“數(shù)組名.length”可以訪問數(shù)組元素的數(shù)量(數(shù)組長度)螃宙。

注意

(1)此處數(shù)組的長度是數(shù)組元素的個數(shù) 蛮瞄,不要和數(shù)組的索引號混淆。

(2)當(dāng)我們數(shù)組里面的元素個數(shù)發(fā)生了變化谆扎,這個 length 屬性跟著一起變化挂捅,數(shù)組的length屬性可以被修改:

(3)如果設(shè)置的length屬性值大于數(shù)組的元素個數(shù),則會在數(shù)組末尾出現(xiàn)空白元素燕酷;

(4)如果設(shè)置的length屬性值小于數(shù)組的元素個數(shù)籍凝,則會把超過該值的數(shù)組元素刪除

數(shù)組添加元素

數(shù)組中可以通過以下方式在數(shù)組的末尾插入新元素: 數(shù)組[ 數(shù)組.length ] = 新數(shù)據(jù);

也可以通過 數(shù)組= fruits.push('Orange');添加元素到數(shù)組的末尾。


對象

在 JavaScript 中苗缩,對象是一組無序的相關(guān)屬性和方法的集合,所有的事物都是對象声诸,例如字符串酱讶、數(shù)值、數(shù)組彼乌、函數(shù)等泻肯。 對象是由屬性和方法組成的渊迁。

屬性:事物的特征,在對象中用屬性來表示(常用名詞)

方法:事物的行為灶挟,在對象中用方法來表示(常用動詞)

創(chuàng)建對象的三種方式

一琉朽、使用對象字面量創(chuàng)建對象:

?就是花括號 { } 里面包含了表達(dá)這個具體事物(對象)的屬性和方法;

{ } 里面采取鍵值對的形式表示稚铣;

:相當(dāng)于屬性名

:相當(dāng)于屬性值箱叁,可以是任意類型的值(數(shù)字類型、字符串類型惕医、布爾類型耕漱,函數(shù)類型等)

對象的使用

對象的屬性

對象中存儲具體數(shù)據(jù)的 "鍵值對"中的 "鍵"稱為對象的屬性,即對象中存儲具體數(shù)據(jù)的項(xiàng)

對象的方法

對象中存儲函數(shù)的 "鍵值對"中的 "鍵"稱為對象的方法抬伺,即對象中存儲函數(shù)的項(xiàng)

訪問對象的屬性

對象里面的屬性調(diào)用 : 對象.屬性名 螟够,這個小點(diǎn) . 就理解為“ 的 ”?

對象里面屬性的另一種調(diào)用方式 : 對象[‘屬性名’],注意方括號里面的屬性必須加引號? ? ?

調(diào)用對象的方法

對象里面的方法調(diào)用:對象.方法名() 峡钓,注意這個方法名字后面一定加括號

變量妓笙、屬性、函數(shù)能岩、方法總結(jié)

屬性是對象的一部分寞宫,而變量不是對象的一部分,變量是單獨(dú)存儲數(shù)據(jù)的容器

變量:單獨(dú)聲明賦值捧灰,單獨(dú)存在

屬性:對象里面的變量稱為屬性淆九,不需要聲明,用來描述該對象的特征

二毛俏、利用 new Object 創(chuàng)建對象

創(chuàng)建空對象

varandy=newObect();

通過內(nèi)置構(gòu)造函數(shù)Object創(chuàng)建對象炭庙,此時andy變量已經(jīng)保存了創(chuàng)建出來的空對象

給空對象添加屬性和方法

通過對象操作屬性和方法的方式,來為對象增加屬性和方法

注意:

Object() :第一個字母大寫?

new Object() :需要 new 關(guān)鍵字

使用的格式:對象.屬性 =? 值;? ?

三煌寇、利用構(gòu)造函數(shù)創(chuàng)建對象

構(gòu)造函數(shù)

構(gòu)造函數(shù):是一種特殊的函數(shù)焕蹄,主要用來初始化對象,即為對象成員變量賦初始值阀溶,它總與 new 運(yùn)算符一起使用腻脏。我們可以把對象中一些公共的屬性和方法抽取出來,然后封裝到這個函數(shù)里面银锻。

構(gòu)造函數(shù)的封裝格式:

function 構(gòu)造函數(shù)名(形參1,形參2,形參3) {? ?

?this.屬性名1 = 參數(shù)1;? ?

?this.屬性名2 = 參數(shù)2;??

? this.屬性名3 = 參數(shù)3;? ?

?this.方法名 = 函數(shù)體;

}

構(gòu)造函數(shù)的調(diào)用格式

var obj = new 構(gòu)造函數(shù)名(實(shí)參1永品,實(shí)參2,實(shí)參3)

以上代碼中击纬,obj即接收到構(gòu)造函數(shù)創(chuàng)建出來的對象鼎姐。

注意事項(xiàng)

(1)構(gòu)造函數(shù)約定首字母大寫

(2)函數(shù)內(nèi)的屬性和方法前面需要添加 this ,表示當(dāng)前對象的屬性和方法炕桨。

(3)構(gòu)造函數(shù)中不需要 return 返回結(jié)果饭尝。

(4)當(dāng)我們創(chuàng)建對象的時候,必須用 new 來調(diào)用構(gòu)造函數(shù)献宫。

其他

構(gòu)造函數(shù)钥平,如 Stars(),抽取了對象的公共部分姊途,封裝到了函數(shù)里面涉瘾,它泛指某一大類(class)創(chuàng)建對象,如 new Stars()吭净,特指某一個睡汹,通過 new 關(guān)鍵字創(chuàng)建對象的過程我們也稱為對象實(shí)例化。

new關(guān)鍵字的作用

在構(gòu)造函數(shù)代碼開始執(zhí)行之前寂殉,創(chuàng)建一個空對象囚巴;

修改this的指向,把this指向創(chuàng)建出來的空對象友扰;

執(zhí)行函數(shù)的代碼彤叉;

在函數(shù)完成之后,返回this---即創(chuàng)建出來的對象村怪;

?遍歷對象

for...in 語句用于對數(shù)組或者對象的屬性進(jìn)行循環(huán)操作秽浇。

其語法如下:

for (變量 in 對象名字) {? ? // 在此執(zhí)行代碼}

語法中的變量是自定義的,它需要符合命名規(guī)范甚负,通常我們會將這個變量寫為 k 或者 key柬焕。

for (var k in obj) {?

?? console.log(k);? ? ? // 這里的 k 是屬性名? ?

?console.log(obj[k]); // 這里的 obj[k] 是屬性值

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市梭域,隨后出現(xiàn)的幾起案子斑举,更是在濱河造成了極大的恐慌,老刑警劉巖病涨,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件富玷,死亡現(xiàn)場離奇詭異,居然都是意外死亡既穆,警方通過查閱死者的電腦和手機(jī)赎懦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幻工,“玉大人励两,你說我怎么就攤上這事∧衣” “怎么了伐蒋?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵工三,是天一觀的道長迁酸。 經(jīng)常有香客問我先鱼,道長,這世上最難降的妖魔是什么奸鬓? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任焙畔,我火速辦了婚禮,結(jié)果婚禮上串远,老公的妹妹穿的比我還像新娘宏多。我一直安慰自己,他們只是感情好澡罚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布伸但。 她就那樣靜靜地躺著,像睡著了一般留搔。 火紅的嫁衣襯著肌膚如雪更胖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天隔显,我揣著相機(jī)與錄音却妨,去河邊找鬼。 笑死括眠,一個胖子當(dāng)著我的面吹牛彪标,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掷豺,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼捞烟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了当船?” 一聲冷哼從身側(cè)響起题画,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎生年,沒想到半個月后婴程,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抱婉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年档叔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒸绩。...
    茶點(diǎn)故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡衙四,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出患亿,到底是詐尸還是另有隱情传蹈,我是刑警寧澤押逼,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站惦界,受9級特大地震影響挑格,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沾歪,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一漂彤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧灾搏,春花似錦挫望、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至泉哈,卻和暖如春蛉幸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旨巷。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工巨缘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人采呐。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓若锁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親斧吐。 傳聞我的和親對象是個殘疾皇子又固,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評論 2 355