022 JS操作

JS基礎(chǔ)操作

一、分支結(jié)構(gòu)

1挟裂、if語(yǔ)句

  • if 基礎(chǔ)語(yǔ)法
if (條件表達(dá)式) {
    代碼塊;
}
// 當(dāng)條件表達(dá)式結(jié)果為true享钞,會(huì)執(zhí)行代碼塊;反之不執(zhí)行
// 條件表達(dá)式可以為普通表達(dá)式
// 0诀蓉、undefined栗竖、null、""渠啤、NaN為假狐肢,其他均為真
  • if 復(fù)雜語(yǔ)法
// 1.雙分支
if (表達(dá)式1) {
    代碼塊1;
} else {
    代碼塊2;
}

// 2.多分支
if (表達(dá)式1) {
    
} else if (表達(dá)式2) {
    
} 
...
else if (表達(dá)式2) {
    
} else {
    
}
  • if 嵌套
if (表達(dá)式1) {
    if (表達(dá)式2) {
        
    }...
}...

2、switch語(yǔ)句

switch (表達(dá)式) {
    case 值1: 代碼塊1; break;
    case 值2: 代碼塊2; break;
    default: 代碼塊3;
}
// 1.表達(dá)式可以為 整數(shù)表達(dá)式 或 字符串表達(dá)式
// 2.值可以為 整數(shù) 或 字符串
// 3.break可以省略
// 4.default為默認(rèn)代碼塊沥曹,需要出現(xiàn)在所有case最下方份名,在所有case均未被匹配時(shí)執(zhí)行

二、循環(huán)結(jié)構(gòu)

1妓美、for循環(huán)

for (循環(huán)變量①; 條件表達(dá)式②; 循環(huán)變量增量③) {
    代碼塊④;
}
// 1.循環(huán)變量可以在外僵腺、在內(nèi)聲明
// 2.執(zhí)行邏輯 ① ②④③ ... ②④③ ②,入口為①壶栋,出口為②辰如,②④③個(gè)數(shù)為[0, n]

2、while循環(huán)

while (條件表達(dá)式) {
    代碼塊;
}

3贵试、do...while循環(huán)

do {
    代碼塊;
} while (條件表達(dá)式);

4琉兜、for...in循環(huán)

obj = {"name": "zero", "age": 8}
for (k in obj) {
    console.log(k, obj[k])
}
// 用于遍歷對(duì)象:遍歷的結(jié)果為key,通過(guò)[]語(yǔ)法訪(fǎng)問(wèn)對(duì)應(yīng)的value

5毙玻、for...of循環(huán)

iter = ['a', 'b', 'c'];
for (i of iter) {
    console.log(iter[i])
}
// 1.用于遍歷可迭代對(duì)象:遍歷結(jié)果為index豌蟋,通過(guò)[]語(yǔ)法訪(fǎng)問(wèn)對(duì)應(yīng)的value
// 2.ES6新增,可迭代對(duì)象有 字符串淆珊、數(shù)組夺饲、Map、Set施符、Anguments往声、NodeList等

6、break戳吝,continue關(guān)鍵詞

  • break:結(jié)束本層循環(huán)
  • continue:結(jié)束本次循環(huán)進(jìn)入下一次循環(huán)

三浩销、異常處理

try {
    易錯(cuò)代碼塊;
} catch (err) {
    異常處理代碼塊;
} finally {
    必須邏輯代碼塊;
}
// 1.err為存儲(chǔ)錯(cuò)誤信息的變量
// 2.finally分支在異常出現(xiàn)與否都會(huì)被執(zhí)行
throw "自定義異常"
// 必要的時(shí)候拋出自定義異常,要結(jié)合對(duì)應(yīng)的try...catch使用

四听哭、函數(shù)初級(jí)

1慢洋、函數(shù)的定義

  • ES5
function 函數(shù)名 (參數(shù)列表) {
    函數(shù)體;
}

var 函數(shù)名 = function (參數(shù)列表) {
    函數(shù)體;
}
  • ES6
let 函數(shù)名 = (參數(shù)列表) => {
    函數(shù)體;
}
  • 匿名函數(shù)
(function (參數(shù)列表) {
    函數(shù)體;
})

// 匿名函數(shù)需要自調(diào)用
(function (參數(shù)列表) {
    函數(shù)體;
})(參數(shù)列表);

2塘雳、函數(shù)的調(diào)用

  • 函數(shù)名(參數(shù)列表)

3、函數(shù)的參數(shù)

  • 個(gè)數(shù)不需要統(tǒng)一
function fn (a, b, c) {
    console.log(a, b, c);  // 100 undefined undefined
}
fn(100);

function fn (a) {
    console.log(a)  // 100
}
fn(100, 200, 300)  // 200,300被丟棄
  • 可以任意位置具有默認(rèn)值
function fn (a, b=20, c, d=40) {
    console.log(a, b, c, d);  // 100 200 300 40
}
fn(100, 200, 300);
  • 通過(guò)...語(yǔ)法接收多個(gè)值
function fn (a, ...b) {
    console.log(a, b);  // 100 [200 300]
}
fn(100, 200, 300);
// ...變量必須出現(xiàn)在參數(shù)列表最后

4普筹、返回值

function fn () {
    return 返回值;
}
// 1.可以空return操作败明,用來(lái)結(jié)束函數(shù)
// 2.返回值可以為任意js類(lèi)型數(shù)據(jù)
// 3.函數(shù)最多只能擁有一個(gè)返回值

五、事件初級(jí)

  • onload:頁(yè)面加載完畢事件太防,只附屬于window對(duì)象
  • onclick:鼠標(biāo)點(diǎn)擊時(shí)間
  • onmouseover:鼠標(biāo)懸浮事件
  • onmouseout:鼠標(biāo)移開(kāi)事件
  • onfocus:表單元素獲取焦點(diǎn)
  • onblur:表單元素失去焦點(diǎn)

六妻顶、JS選擇器

1、getElement系列

// 1.通過(guò)id名獲取唯一滿(mǎn)足條件的頁(yè)面元素
document.getElementById('id名');
// 該方法只能由document調(diào)用

// 2蜒车、通過(guò)class名獲取所有滿(mǎn)足條件的頁(yè)面元素
document.getElementsByClassName('class名');
// 該方法可以由document及任意頁(yè)面元素對(duì)象調(diào)用
// 返回值為HTMLCollection (一個(gè)類(lèi)數(shù)組結(jié)果的對(duì)象讳嘱,使用方式同數(shù)組)
// 沒(méi)有匹配到任何結(jié)果返回空HTMLCollection對(duì)象 ([])

// 3.通過(guò)tag名獲取所有滿(mǎn)足條件的頁(yè)面元素
document.getElementsByTagName('tag名');
// 該方法可以由document及任意頁(yè)面元素對(duì)象調(diào)用
// 返回值為HTMLCollection (一個(gè)類(lèi)數(shù)組結(jié)果的對(duì)象,使用方式同數(shù)組)
// 沒(méi)有匹配到任何結(jié)果返回空HTMLCollection對(duì)象 ([])

2酿愧、querySelect系列

// 1.獲取第一個(gè)匹配到的頁(yè)面元素
document.querySelector('css語(yǔ)法選擇器');
// 該方法可以由document及任意頁(yè)面對(duì)象調(diào)用

// 2.獲取所有匹配到的頁(yè)面元素
document.querySelectorAll('css語(yǔ)法選擇器');
// 該方法可以由document及任意頁(yè)面對(duì)象調(diào)用
// 返回值為NodeList (一個(gè)類(lèi)數(shù)組結(jié)果的對(duì)象沥潭,使用方式同數(shù)組)
// 沒(méi)有匹配到任何結(jié)果返回空NodeList對(duì)象 ([])

3、id名

  • 可以通過(guò)id名直接獲取對(duì)應(yīng)的頁(yè)面元素對(duì)象嬉挡,但是不建議使用

七钝鸽、JS操作頁(yè)面內(nèi)容

  • innerText:普通標(biāo)簽內(nèi)容(自身文本與所有子標(biāo)簽文本)

  • innerHTML:包含標(biāo)簽在內(nèi)的內(nèi)容(自身文本及子標(biāo)簽的所有)

  • value:表單標(biāo)簽的內(nèi)容

  • outerHTML:包含自身標(biāo)簽在內(nèi)的內(nèi)容(自身標(biāo)簽及往下的所有)

八、JS操作頁(yè)面樣式

  • 讀寫(xiě) style屬性 樣式
div.style.backgroundColor = 'red';
// 1.操作的為行間式
// 2.可讀可寫(xiě)
// 3.具體屬性名采用小駝峰命名法
  • 只讀 計(jì)算后 樣式
// eg: 背景顏色
// 推薦
getComputedStyle(頁(yè)面元素對(duì)象, 偽類(lèi)).getPropertyValue('background-color');
// 不推薦
getComputedStyle(頁(yè)面元素對(duì)象, 偽類(lèi)).backgroundColor;

// IE9以下
頁(yè)面元素對(duì)象.currentStyle.getAttribute('background-color');
頁(yè)面元素對(duì)象.currentStyle.backgroundColor;

// 1.頁(yè)面元素對(duì)象由JS選擇器獲取
// 2.偽類(lèi)沒(méi)有的情況下用null填充
// 3.計(jì)算后樣式為只讀
// 4.該方式依舊可以獲取行間式樣式 (獲取邏輯最后的樣式)
  • 結(jié)合 css 操作樣式
頁(yè)面元素對(duì)象.className = "";  // 清除類(lèi)名
頁(yè)面元素對(duì)象.className = "類(lèi)名";  // 設(shè)置類(lèi)名
頁(yè)面元素對(duì)象.className += " 類(lèi)名";  // 添加類(lèi)名
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末庞钢,一起剝皮案震驚了整個(gè)濱河市寞埠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌焊夸,老刑警劉巖仁连,帶你破解...
    沈念sama閱讀 216,744評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異阱穗,居然都是意外死亡饭冬,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)揪阶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)昌抠,“玉大人,你說(shuō)我怎么就攤上這事鲁僚〈渡唬” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,105評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵冰沙,是天一觀的道長(zhǎng)侨艾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)拓挥,這世上最難降的妖魔是什么唠梨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,242評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮侥啤,結(jié)果婚禮上当叭,老公的妹妹穿的比我還像新娘茬故。我一直安慰自己,他們只是感情好蚁鳖,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評(píng)論 6 389
  • 文/花漫 我一把揭開(kāi)白布磺芭。 她就那樣靜靜地躺著,像睡著了一般醉箕。 火紅的嫁衣襯著肌膚如雪徘跪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,215評(píng)論 1 299
  • 那天琅攘,我揣著相機(jī)與錄音,去河邊找鬼松邪。 笑死坞琴,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的逗抑。 我是一名探鬼主播剧辐,決...
    沈念sama閱讀 40,096評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼邮府!你這毒婦竟也來(lái)了荧关?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,939評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤褂傀,失蹤者是張志新(化名)和其女友劉穎忍啤,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體仙辟,經(jīng)...
    沈念sama閱讀 45,354評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡同波,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叠国。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片未檩。...
    茶點(diǎn)故事閱讀 39,745評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖粟焊,靈堂內(nèi)的尸體忽然破棺而出冤狡,到底是詐尸還是另有隱情,我是刑警寧澤项棠,帶...
    沈念sama閱讀 35,448評(píng)論 5 344
  • 正文 年R本政府宣布悲雳,位于F島的核電站,受9級(jí)特大地震影響香追,放射性物質(zhì)發(fā)生泄漏怜奖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評(píng)論 3 327
  • 文/蒙蒙 一翅阵、第九天 我趴在偏房一處隱蔽的房頂上張望歪玲。 院中可真熱鬧迁央,春花似錦、人聲如沸滥崩。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,683評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钙皮。三九已至蜂科,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間短条,已是汗流浹背导匣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,838評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茸时,地道東北人贡定。 一個(gè)月前我還...
    沈念sama閱讀 47,776評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像可都,于是被迫代替她去往敵國(guó)和親缓待。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,182評(píng)論 0 3
  • 第3章 基本概念 3.1 語(yǔ)法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類(lèi)型 5種簡(jiǎn)單數(shù)據(jù)類(lèi)型:Unde...
    RickCole閱讀 5,124評(píng)論 0 21
  • HTML 5 HTML5概述 因特網(wǎng)上的信息是以網(wǎng)頁(yè)的形式展示給用戶(hù)的渠牲,因此網(wǎng)頁(yè)是網(wǎng)絡(luò)信息傳遞的載體旋炒。網(wǎng)頁(yè)文件是用...
    阿啊阿吖丁閱讀 3,887評(píng)論 0 0
  • 我們先大致來(lái)了解一下javascript的內(nèi)容,然后由淺入深的來(lái)學(xué)習(xí)签杈,進(jìn)一步提升對(duì)WEB前端技術(shù)的興趣瘫镇。 如何插入...
    yezi1004閱讀 1,299評(píng)論 0 0
  • 前端開(kāi)發(fā)面試題 面試題目: 根據(jù)你的等級(jí)和職位的變化,入門(mén)級(jí)到專(zhuān)家級(jí)答姥,廣度和深度都會(huì)有所增加汇四。 題目類(lèi)型: 理論知...
    怡寶丶閱讀 2,582評(píng)論 0 7