【JavaScript总结】JavaScript语法基础:JS高级语法
作用域鏈:
1.JS中只有函數(shù)能夠限定作用域的范圍;
2.變量處理在制定的函數(shù)范圍內(nèi),還有一個(gè)特殊的作用域,就是沒(méi)有用var 聲明的全局作用域
3.js中的作用域鏈?zhǔn)菫榱饲逦谋硎境鏊凶兞康淖饔梅秶?#xff0c;同一作用范圍的變量處在同一作用域鏈上
4.在script中表示的第一個(gè)作用域鏈:0鏈,如果有函數(shù),表示在這個(gè)位置第二個(gè)鏈,記為1鏈,依次得到2鏈,3鏈
5.變量的訪問(wèn)規(guī)則:現(xiàn)在當(dāng)前作用域找,找不到就往上找,直到找到0鏈,還沒(méi)有就拋異常
注意:
函數(shù)也是變量
沙箱模式:為了安全,不污染別的變量
(function(){})();
閉包:
閉包就是函數(shù)里面的變量而已,只不過(guò)它在函數(shù)里面,這個(gè)整體就叫做閉包,別人訪問(wèn)不到它,它就形成一個(gè)壁壘一樣,被包裹的東西
它就像墻一樣包裹起來(lái),你看到不到它。
對(duì)應(yīng)了JavaScript的面向?qū)ο蟮奶匦?#xff0c;使之具有私有變量
使用時(shí):為了防止性能損失,可以使用閉包先存一部分?jǐn)?shù)據(jù)
Var foo1= function(){ };
Var foo2=(function(){})();
函數(shù)的四種調(diào)用形式
- 函數(shù)調(diào)用 this(全局變量)
- 方法調(diào)用 this (當(dāng)前對(duì)象)
- 構(gòu)造器調(diào)用 this(表示創(chuàng)建當(dāng)前對(duì)象)
- apply與call調(diào)用 上下文調(diào)用,this根據(jù)參數(shù)自定義
面向?qū)ο笈c原型
JavaScript對(duì)象:鍵值對(duì)
JavaScript方法:值為函數(shù)的屬性
JavaScript原型:對(duì)象繼承實(shí)體
C系繼承模型
例如:C++,C#,Java
繼承:模板類
原型繼承
例如:JavaScript
繼承:(實(shí)體),有一個(gè)對(duì)象存在,構(gòu)造函數(shù)設(shè)置原型為這個(gè)對(duì)象;創(chuàng)建出來(lái)的對(duì)象就繼承了這個(gè)對(duì)象(從對(duì)象那里繼承)
原型:就是函數(shù)的prototype屬性
原型鏈
每個(gè)對(duì)象有一個(gè)屬性 叫_proto_,這個(gè)屬性就是對(duì)象的原型
所以,需要原型,那就一定要有函數(shù)
高級(jí)
對(duì)象有原型,而原型也是對(duì)象,原型也有原型
所有對(duì)象來(lái)自于Object對(duì)象
所有函數(shù)來(lái)自于Function對(duì)象
所有的函數(shù)是對(duì)象,繼承自Function.prototype
Function.prototype是對(duì)象,繼承自O(shè)bject.prototype
Object.prototype是對(duì)象,繼承自null
原型系統(tǒng)中
操作對(duì)象的成員
讀取操作:從當(dāng)前向上尋找,找到為止
修改操作:在當(dāng)前找,找到就用,沒(méi)有找到就創(chuàng)建
總結(jié)
以上是生活随笔為你收集整理的【JavaScript总结】JavaScript语法基础:JS高级语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【JavaScript总结】JavaSc
- 下一篇: 程序员如何讲清楚技术方案