一.作用域:
? ? ? ? ? ? ? ? ? 作用域指一個(gè)變量的額作用范圍赵抢。
? ? ? ? ? ? ? ? ? 在js 中的一共有兩種作用區(qū)域:
? ? ? ? ? ? ? ? ? ? ? ? ? 1.全局作用域
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——直接編寫在script標(biāo)簽中的js代碼,都在全局作用域声功。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——全局作用域在頁面打開時(shí)創(chuàng)建烦却,在頁面關(guān)閉時(shí)銷毀
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——在全局作用域中有一個(gè)全局對(duì)象window,他代表的是一個(gè)瀏覽器的窗口先巴,它由瀏覽器創(chuàng)建我們可以直接使用其爵。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——在全局作用域中:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建的變量都會(huì)作為window對(duì)象的屬性保存。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 創(chuàng)建的函數(shù)都會(huì)作為window對(duì)象的方法保存
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——全局作用域中的變量都是全局變量筹裕,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在頁面的任意的部分都可以訪問的醋闭。
? ? ? ? ? ? ? ? ? ? ? ? ? 2.函數(shù)作用域?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——調(diào)用函數(shù)時(shí)創(chuàng)建函數(shù)作用域,函數(shù)執(zhí)行完畢以后朝卒,函數(shù)作用域銷毀证逻。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——沒調(diào)用一次函數(shù)就會(huì)創(chuàng)建一個(gè)新的函數(shù)作用域,他們之間是相互獨(dú)立的抗斤。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——在函數(shù)作用域中可以訪問到全局作用域的變量囚企。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在全局作用域中無法訪問到函數(shù)作用域的變量。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——當(dāng)在函數(shù)作用域操作一個(gè)變量時(shí)瑞眼,它會(huì)先在自身作用域中尋找龙宏,如果有直接使用,如果沒有則向上一級(jí)作用域中尋找伤疙,直到找到全局作用域银酗,如果全局作用域中依然沒有找到辆影,則會(huì)報(bào)錯(cuò)ReferenceError。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ——在函數(shù)中要訪問全局變量可以使用window對(duì)象黍特。
二.獲取元素的方式:
? ? ? ? ? ? ? 一.
? ? ? ? ? ? ? 1.getElenentsByClassName? 根據(jù)類名獲得某些元素的集合蛙讥。
? ? ? ? ? ? ? 2.? querySelector? 返回制定選擇器的第一個(gè)元素,切記里面的選擇器需要加符號(hào)? .box? ? #nav
? ? ? ? ? ? ? 3.querySelectorAll()返回指定選擇器的所有元素對(duì)象集合灭衷。
? ? ? ? ? ? ? 二.
? ? ? ? ? ? ? ? ? 1.獲取body元素(var bodyEle = document.body)次慢;
? ? ? ? ? ? ? ? ? 2.獲取html元素(var htmlEle = document.documentElement);
三.事件三要素:
? ? ? 點(diǎn)擊一個(gè)按鈕,彈出對(duì)話框
? ? ? ? ? ? ? 1.事件是由三部分組成①事件源 ②時(shí)間類型 ③ 事件處理程序 我們也稱為事件三要素翔曲。
? ? ? ? ? ? ? ①:事件源? 事件被觸發(fā)的對(duì)象? 誰? ? 按鈕
? ? ? ? ? ? ? ②:時(shí)間類型? 如何觸發(fā)? 什么事件? 比如鼠標(biāo)點(diǎn)擊(onclick)還是鼠標(biāo)經(jīng)過 還是鍵盤按下惧财。
? ? ? ? ? ? ? ③:事件處理程序? 通過一個(gè)函數(shù)賦值的方式? 完成纲刀。
? ? ? ? 常見的鼠標(biāo)事件:
? ? ? ? ? ? ? ? ? onclick? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 鼠標(biāo)點(diǎn)擊左鍵觸發(fā)
? ? ? ? ? ? ? ? ? onmouseover? ? ? ? ? ? ? ? ? ? ? ? 鼠標(biāo)經(jīng)過觸發(fā)
? ? ? ? ? ? ? ? ? onmouseout? ? ? ? ? ? ? ? ? ? ? ? ? 鼠標(biāo)離開觸發(fā)
? ? ? ? ? ? ? ? ? onfocus? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 獲得鼠標(biāo)焦點(diǎn)觸發(fā)
? ? ? ? ? ? ? ? ? onblur? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 失去鼠標(biāo)焦點(diǎn)觸發(fā)
? ? ? ? ? ? ? ? ? onmousemove? ? ? ? ? ? ? ? ? ? ? ? 鼠標(biāo)移動(dòng)觸發(fā)
? ? ? ? ? ? ? ? ? onmouseup? ? ? ? ? ? ? ? ? ? ? ? ? ? 鼠標(biāo)彈起觸發(fā)
? ? ? ? ? ? ? ? ? onmousedown? ? ? ? ? ? ? ? ? ? ? ? 鼠標(biāo)按下觸發(fā)