1. 程式人生 > >js閉包 選擇器 面向對象 事件 操作頁面

js閉包 選擇器 面向對象 事件 操作頁面

his 就是 sele 處理 學習 per 點擊事件 駝峰命名 css


閉包
js函數的嵌套定義,定義在內部的函數 就稱之為閉包
為什麽使用閉包:
1.一個函數要使用另一個函數的局部變量
2.閉包會持久化包裹自身的函數的局部變量
3.解決循環綁定

function outer() {
var num =10;
function inner() {
//1.在inner函數中,使用了outer的局部變量num
return num;
}
return inner;
}
var innerFn = outer();
//2.借助閉包,將局部變量num的聲明周期提升了
var num = innerFn();
console.log(num);



面向對象
對象:特征與行為的結合體,是一個具象的實體
對象使用屬性與方法, 采用.語法

var obj = {
//屬性
name:‘Zero‘,
//方法
teach:function () {
console.log(‘教學‘);
}
};
console.log(obj.name);
obj.teach();

構造函數:聲明與普通函數一樣,只是方法(函數)名采用大駝峰命名規則
function Persor(name) { //類似於python中的類來使用
//函數內部屬性方式不同於普通函數
this.name=name; //this代表Persor構造函數實例化的對象本身
this.teach = function () {
console.log(this.name+ "正在教學");
}
}

ES6類語法
class Student{ //, 可以實例化對象,但實例化的對象需要加以區分
//需要構造器(構造函數)來完成對象的聲明與初始化
constructor(name){
//屬性在構造器中聲明並初始化
this.name=name;
}
// 類中規定普通方法
study() {
console.log(this.name+ "正在學習");
}
}
//類方法
static fn() {
console.log(‘我是類方法‘)
}
類中的普通方法由類的具體實例化對象來調用
類中的類方法由類直接來調用(這類型的方法大多是功能性方法,不需要對象的存在)



js選擇器
直接通過id名(不嚴謹,也不推薦使用)
getElement系列(最嚴謹)
id 獲取:
getElementById(‘id名‘)
只能由document

class 獲取:
getElementsByClassName(‘class名‘)
可以由document以及所屬父級調用

tag 獲取
getElementsByTagName(‘標簽名‘)
可以由document以及所屬父級調用

querySelector
獲取第一個滿足要求的目標
querySelector()

獲取所有滿足要求的目標
querySelectorAll()

1.參數:就采用的是css選擇器語法
2.可以由document及父級來調用
3.對id檢索不嚴謹



事件初識
js事件:頁面標簽在滿足某種條件下可以完成指定功能的這種過程,稱之為事件
某種條件:如鼠標點擊標簽:點擊事件 | 鼠標雙擊標簽:雙擊事件 | 鍵盤按下:鍵盤按下事件
指定功能: 就是開發者根據實際需求完成相應的功能實現

鉤子函數:就是滿足某種條件被系統回調函數(完成某種功能)
點擊事件:明確激活鉤子的條件 = 激活鉤子後該處理什麽邏輯,完成指定功能(函數)


js操作頁面內容
文本內容
//box.innerText
//可以設值,也可以獲取值

標簽內容
//box.innerHTML
//可以設值,也可以獲取值,能解析html語法代碼

//box.outerHTML
//獲取包含自身標簽信息的所有字內容信息

樣式
//box.style.樣式名 ==>可以設值,也可以獲取,但操作的只能是行間式
//getComputedStyle(box.null).樣式名 ==>只能獲取值,不能設值,能獲取所有方式設置的值(行間式 與計算後樣式)
//註: 獲取計算後樣式,需要關註值的格式

js閉包 選擇器 面向對象 事件 操作頁面