js 物件導向相關筆記(五)

2021-08-20 13:49:44 字數 1856 閱讀 7798

1.作用域(起作用的範圍)

◆塊兒級作用域:ecmascript6之前js中沒有塊兒級作用域

◆詞法作用域:就是在**寫好的一刻,變數的作用域就已經確定了,這種作用域,就是所謂的詞法作用域,和詞法作用域相對的叫動態作用域,js中的詞法作用域不是動態作用域

◆ecmascript6之前js中唯一能夠產生作用域的東西是 函式

◆詞法作用域的規則【

◇函式允許訪問函式外的資料

◇整個**結構中只有函式可以限定作用域

◇作用域規則首先使用提公升規則分析

◇如果當前作用域中有了該變數,就不考慮外面的同名變數◇】

2.js**的執行分為兩個步驟

◆預解析:檢查語法錯誤,函式提公升,變數提公升【

◇在提公升的時候,如果有變數和函式同名,會忽略掉變數,只會提公升函式。

◇函式的提公升:function name(){}

◇變數的提公升:var name;

☆提公升歸提公升,賦值歸賦值,提公升的時候不會分配空間,賦值的時候才會進行記憶體空間的分配。

◇預解析式分作用域的,函式中的變數或者子函式都會提公升到當前父級作用域中,而不是提公升到全域性作用域中。

◇預解析式分段的,也就是會分script標籤對,但是這個問題只針對function而已。

◇函式表示式並不會被提公升,如 var fn=function(){};

】◆執行:真正的執行js**

3.提公升

◆變數的提公升是分作用域的

◆當函式和變數同名的時候,只會提公升函式,不會提公升變數名

◆函式同名,全部都會提公升,但是後面的函式,會覆蓋前面的函式

◆函式表示式不會被提公升,但是變數會被提公升◆◆

◆4.作用域鏈

◆只要是函式就可以創造作用域

◆函式中又可以再建立函式

◆函式內部的作用域可以訪問函式外部的作用域

◆如果有多個函式巢狀,那麼就會構成乙個鏈式訪問結構,這就是作用域鏈。

◆5.變數訪問規則

◆首先在所在的作用域中查詢,如果找到了就直接使用,如果沒有找到就到上一級作用域查詢,直到找到為止,如果實在找不到,那麼返回undefined

6.閉包

◆閉:閉合,關閉,封閉

◆包:包裹,包起來

◆乙個具有封閉的對外不公開的,包裹結構的空間

◆js中的閉包就是函式

◆閉包的原理:

【◇就是作用域訪問原則也就是作用域鏈

◇上級作用域無法直接訪問下級作用域中的變數

】◆閉包要解決的問題:

【◇閉包內的資料不允許外界訪問

◇要解決的問題就是間接訪問該函式內的資料

】7.閉包的基本模式

◆通過閉包返回的函式或者方法,來修改函式內部的資料

【//很像是在給乙個物件封裝字段一樣

function foo(),

setname:function(value),

getage:function(),

setage:function(value)

age=value;

return age;}}

}var obj=foo();

obj.setname("yls");

obj.setage(18);

console.log(obj.getname()+":"+obj.getage());

】。◆建立乙個私有的空間,保護資料

◆外部想要訪問資料,只能通過函式提供的方法

◆在提供的方法中,可以設定一些校驗的邏輯判斷,確保資料的正確性和安全性◆◆

8.中國國家數字圖書館:

9.條件式函式宣告是否會被提公升,由瀏覽器決定,條件式函式宣告不在w3c標準之中,所以不推薦去寫【

foo();//這裡會報錯,因為未被提公升

if(true)}】

js相關筆記(五)

23.和 的運算的妙用 不只是取bool值,也能取 其它型別的值,當使用 和 鏈住兩個值時,表面會以boolean型別來進行處理,但是最終的結果是 值的本身 而並 不一定 返回的是 boolean型別的值 切記 先執行 再執行 當兩邊的值都為false時 取 左邊的值 當有一邊值為false時 取 ...

js物件導向筆記

js物件導向的組成是 1 屬性 2 方法 使用的時候是再建構函式裡面加屬性,在原型裡面加方法。如果直接在建構函式裡面 傳值 新建物件 增加屬性 方法 返回物件的這種方法,會產生問題,主要是 1 沒有new 2 函式重複定義,這樣會讓資源浪費 所以,我們要在建構函式裡面使用this構造屬性,把方法放在...

JS學習筆記 物件導向

類 物件 類 模子 物件 產品 成品 蛋糕 物件 模子 類 array 類 arr 物件 array.push 錯 arr.push 對 new arr 錯 原型prototype 是加到類上面,而不是物件。混合方式構造物件 方法都是相同的,屬性都是不同的。方法 函式 屬性 變數 用 建構函式 加 ...