標籤:lin 多次 ack 作用 js對象 tin 調用 toggle python學習
1. JS範圍1.1 全域範圍和局部範圍
- 函數外面聲明的就是 全域範圍
- 函數內是局部範圍
- 全域變數可以直接在函數內修改和使用
- 變數,使用
var是聲明,沒有var是使用變數。 如果在函數內使用var來聲明變數,在函數內會覆蓋同名的全域變數
1.2 變數提升
- 在變數聲明之前 去使用變數 會得到 undefined ,而不是報錯
- 函數內,如果聲明了跟全域變數同名的局部變數, 在聲明之前使用改變數,得到undefined( 該變數已經是局部的啦)
1.3 範圍鏈
- 當一個範圍 使用某個變數時,先從本範圍中找, 如果沒有去父範圍,再沒有,父範圍的父範圍,一直到 全域範圍。 構成了一個範圍鏈
1.4 閉包
- 通常需要 函數中 返回一個 函數
- 目的 把一個局部範圍的 資料 讓外層的範圍使用
1.5 ES6 新增一 塊狀範圍
let關鍵字也可以聲明變數,同var一樣
- 但是
let關鍵字聲明的變數,會在結構語句中產生 塊狀範圍
- ES6建議 使用let代替 var
2. JS對象2.1 建構函式和對象
構造就是類function User([參數]) { this.屬性 = 值; this.屬性 = 值; this.方法 = function(){ }}#執行個體一個對象new 建構函式();如果建構函式沒有參數 可以 不加()
2.2 JS原型和原型鏈原型
- 每個對象 都有原型 (原型仍然是一個對象)
- 對象可以繼承原型的屬性和方法
__proto__ 所有對象都有該屬性, 該屬性指向該對象的原型
原型鏈
- 原型作為對象 也有原型
- 原型的原型的原型 就構成了 原型鏈
- 使用對象中某個屬性的時候,先從對象中找,如果沒有,從原型上找,原型如果也沒有,繼續向上找,直到頂層 (頂層的原型對象是一個 類型(類)(建構函式)是Object 的對象)
2.3 JS對象屬性的調用
. 點obj.nameobj.age[] 中括弧obj[‘name‘]obj[‘age‘]任意的對象都可以在對象執行個體化完成後,添加屬性和方法
2.4 Object 建構函式
js內建的構造方法叫Objectvar obj = new Object()json方式定義對象var obj = {屬性:值,屬性:值}new Object()的簡寫
實用技巧3.1 從頁面中擷取元素
document.getElementById()根據ID的值擷取元素對象document.getElementsByTagName()根據標籤名取元素對象document.getElementsByClassName()根據class的值取元素對象document.getElementsByName()根據name屬性的值擷取元素對象document.querySelector(css選取器)返回滿足條件的第一個元素對象document.querySelectorAll(css選取器)返回所有滿足條件元素組成的類數組對象
3.2 給元素繫結事件
先擷取元素ele.onclick = function(){ }擷取元素的類數組對象, 遍曆,挨個給每個元素繫結事件
3.3 修改元素的CSS樣式
ele.style.css屬性名稱ele.style.backgroundele.style.borderele.style.backgroundColorele.style[‘background-color‘]
3.4 設定元素的class值
ele.className可以賦值,也可以擷取ele.classList.add(‘值‘)添加一個class值ele.classList.remove(‘值‘)刪除一個class值ele.classList.toggle(‘值‘)自動切換一個class值(有就刪除,沒有就添加)
3.5 事件
onclick 單機ondblclick 雙擊oncoutextmenu 右擊onmouseover/onmouseenter滑鼠懸浮在元素上onmouseout/onmouseleave滑鼠離開元素onmousemove 滑鼠在上面移動onmousedown 滑鼠的按鍵按下onmouseup 滑鼠的按鍵抬起
3.6 js定時單次定時
setTimeout(fn,delay)clearTimeout() 清除定時
多次定時
setInterval(fn,dealy)clearInterval() 清除定時
python學習第五十四天:範圍對象與運用技巧