-
提供訪問(wèn)和操作頁(yè)面內(nèi)容的方法和接口文檔對(duì)象模型DOM
-
提供與瀏覽器交互的方法和接口瀏覽器對(duì)象模型BOM
-
ECMAScript卑笨,提供核心語(yǔ)言功能
<script></script>元素 一般 引用放在<body>元素中頁(yè)面的內(nèi)容后面
javascript語(yǔ)法類似類C語(yǔ)言(java和perl),區(qū)分大小寫嗜浮,語(yǔ)句以分號(hào)結(jié)束
變量 可以保存任何類型的數(shù)據(jù)
var操作符定義,當(dāng)函數(shù)被調(diào)用時(shí),就會(huì)創(chuàng)建該變量并為其賦值,不用就會(huì)被銷毀
省略var,從而創(chuàng)建全局變量
-
數(shù)據(jù)類型
基本類型
字符串(String)
數(shù)字(Number)
布爾(Boolean)
數(shù)組(Array)
空(Null)
未定義(Undefined)-
引用類型
對(duì)象(Object)typeof操作符(檢測(cè)變量的數(shù)據(jù)類型) :
typeof 37 === 'number';
-
undefined類型
使用var聲明變量但未對(duì)其加以初始化時(shí),這個(gè)變量的值就是undefined苛骨。所以當(dāng)提示變量undefined時(shí)候就是告訴我們這個(gè)變量還沒(méi)有初始化。
-
null類型
值:null 空對(duì)象指針(object)
如果定義的變量準(zhǔn)備在將來(lái)用于保存對(duì)象苟呐,那么最好將該變量初始化為null。
typeof null==="object"http://true
if(car!null){
//對(duì)car進(jìn)行某些操作
}```
undefined派生自null值俐筋,但他們的用途完全不同牵素。
alert(null==undefined);//true
***
* #####boolean類型
值:true和false
true不一定等于1,而false也不一定等于0
把其他類型中的值(與boolean等價(jià)的)轉(zhuǎn)換成boolean: `boolean()`
***
* #####number類型( 整數(shù)和浮點(diǎn)數(shù)值)
##`整數(shù)`
十進(jìn)制數(shù)值是最基本的數(shù)值字面量格式澄者,八進(jìn)制的字面量在嚴(yán)格模式下是無(wú)效的
在進(jìn)行計(jì)算時(shí)笆呆,八進(jìn)制和十六進(jìn)制最終都會(huì)轉(zhuǎn)變成十進(jìn)制數(shù)值
##`浮點(diǎn)數(shù)值`
該數(shù)值中必定包含一個(gè) 小數(shù)點(diǎn),并且小數(shù)點(diǎn)后面必須有一位數(shù)字粱挡,浮點(diǎn)數(shù)值得保存空間
是整數(shù)值的兩倍赠幕,es會(huì)不失時(shí)機(jī)地把浮點(diǎn)數(shù)值轉(zhuǎn)換成整數(shù)值。
## `數(shù)值范圍`
最醒ぁ:Number.MIN_VALUE
最大值:Number.MAX_VALUE
如果超出數(shù)值范圍榕堰,轉(zhuǎn)化成infinity值(-infinity負(fù)無(wú)窮),`iFinite()`函數(shù)確認(rèn)一個(gè)數(shù)值是不是有窮的
## `NaN 非數(shù)值`
NaN(Not a number)與任何值不相等,包括他本身
`isNuN()`函數(shù)確認(rèn)這個(gè)參數(shù)是否“非數(shù)值”
##`數(shù)值轉(zhuǎn)換`
把非數(shù)值轉(zhuǎn)換成數(shù)值:
`Number()` 任何數(shù)據(jù)類型
字符串轉(zhuǎn)換成數(shù)值:
`parseIn()`
`parseFloat() `
對(duì)象:
`valueOf()` `toString()`
***
* #####String類型
字符字面量(轉(zhuǎn)義序列)嫌套,字符串一旦創(chuàng)建逆屡,他們的值就不能改變。
轉(zhuǎn)為字符串:`toString()`
***
* #####對(duì)象
object類型踱讨,一組數(shù)據(jù)和功能的集合
object類型是所有它的實(shí)例的基礎(chǔ)魏蔗。
***
* #####操作符
運(yùn)算操作符
位操作符
關(guān)系操作符
相等操作符
## `一元操作符`
遞增`++`和遞減操作符` --`
前置遞減和后置遞減的差別,操作在包含他們的語(yǔ)句被求值之后才執(zhí)行的
## `布爾操作符`
邏輯非 `!`
邏輯與` && ` 兩者同時(shí)
邏輯或 `|| `
乘性操作符 乘法` *` 除法 `/` 求模(于)`%`
## `加性操作符`
加法 `+`
`操作數(shù)是字符串時(shí):
如果兩個(gè)兩個(gè)操作數(shù)都是字符串痹筛,則拼接
如果有一個(gè)是字符串莺治,則將另一個(gè)操作數(shù)轉(zhuǎn)換成操作數(shù)廓鞠,然后拼接`
減法` -`
## `關(guān)系操作符`
大于 `>` 小于 `<` 大于等于 `>=` 小于等于`<=`
字符串比較的是字符編碼
數(shù)值和字符串相比較的時(shí)候,字符串會(huì)變轉(zhuǎn)成數(shù)值谣旁,然后再比較床佳。
`任何操作數(shù)和NaN相比較,結(jié)果都是false蔓挖。`
## `相等操作符`
相等和不相等--先轉(zhuǎn)換再比較
``` var result =('22'==22) //true 轉(zhuǎn)換后相等```
全等和不全等--僅比較而不轉(zhuǎn)換
```var result=('22'===22)//false 因?yàn)椴煌臄?shù)據(jù)類型夕土,所以不全等```
相等 `==`
不相等`!=`
全等`===`
不全等`瘟判!==`
## `條件操作符`
```variale=boolean_experssion?true_value:false_value```
## `賦值操作符`
把右側(cè)的值賦給左側(cè)
var num=10怨绣;
## `逗號(hào)操作符`
var num1=1,num2=2,num3=3;
逗號(hào)操作符還可以用于賦值,逗號(hào)操作符總會(huì)返回表達(dá)式中的最后一項(xiàng)拷获,如下面:
var num=(1,2,2,3,4,5)//num的值為5
***
* #####語(yǔ)句
## `if語(yǔ)句`
推崇用代碼塊篮撑,即使只有一行代碼
```javascript
if (條件)
{
當(dāng)條件為 true 時(shí)執(zhí)行的代碼
}
else
{
當(dāng)條件不為 true 時(shí)執(zhí)行的代碼
}
while語(yǔ)句
前測(cè)試循環(huán)語(yǔ)句
while (條件)
{
需要執(zhí)行的代碼
}
do-while
語(yǔ)句后測(cè)試循環(huán)語(yǔ)句
do
{
需要執(zhí)行的代碼
}
while (條件);
在對(duì)表達(dá)式求值之前,循環(huán)體內(nèi)的代碼至少被執(zhí)行一次
for語(yǔ)句
(前測(cè)循環(huán)語(yǔ)句)具有在執(zhí)行循環(huán)之前初始化變量和定義循環(huán)后要執(zhí)行的代碼的能力匆瓜。
var count =10 ;
for(var i=0;i<count;i++){
alert(i)
}```
for循環(huán)只是把與循環(huán)有關(guān)的代碼集中在一個(gè)位置赢笨。
## `for-in語(yǔ)句`
for-in語(yǔ)句是一種精準(zhǔn)的迭代語(yǔ)句,可以用來(lái)枚舉對(duì)象的屬性(遍歷對(duì)象屬性)
var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
txt=txt + person[x];
}
枚舉在C/C++/c#中驮吱,是一個(gè)被命名的整型常數(shù)的集合茧妒。
label語(yǔ)句可以在代碼中添加標(biāo)簽,以便將來(lái)使用左冬。
## `break語(yǔ)句`
break語(yǔ)句立即退出循環(huán)桐筏,強(qiáng)制繼續(xù)執(zhí)行循環(huán)后面的語(yǔ)句
for (i=0;i<10;i++)
{
if (i==3)
{ break }
x=x + "The number is " + i + "
";
}
## `continue語(yǔ)句`
continue雖然也是立即退出循環(huán),但是退出循環(huán)后會(huì)從循環(huán)的頂部繼續(xù)執(zhí)行
for (i=0;i<=10;i++)
{
if (i==3) continue;
x=x + "The number is " + i + "
";
}```
with語(yǔ)句
將代碼的作用域設(shè)置到一個(gè)特定的對(duì)象中拇砰,嚴(yán)格模式下不允許使用with語(yǔ)句梅忌,否則將視為語(yǔ)法錯(cuò)誤。
switch語(yǔ)句除破,一種流控制語(yǔ)句
default牧氮,相當(dāng)于一個(gè)else語(yǔ)句
可以在switch語(yǔ)句中使用任何數(shù)據(jù)類型,每個(gè)case的值不一定是常量瑰枫,也可以是變量踱葛、表達(dá)式。
函數(shù)可以封裝任意多條語(yǔ)句光坝,而且可以在任何地方剖毯、任何時(shí)候調(diào)用執(zhí)行。
無(wú)須指定函數(shù)的返回值教馆,因?yàn)槿魏魏瘮?shù)都可以在任何時(shí)候返回任何值
return()
位于return語(yǔ)句之后的任何代碼都永遠(yuǎn)不會(huì)執(zhí)行逊谋,一個(gè)函數(shù)可以包含多個(gè)return語(yǔ)句。
未指定返回值的函數(shù)返回的是一個(gè)特殊的undefined值土铺。
函數(shù)沒(méi)有重載胶滋,如果定義兩個(gè)名字相同的函數(shù)板鬓,則改名字只屬于后定義的函數(shù)。
-
基本類型和引用類型的值
引用類型的值是保存在內(nèi)存中的對(duì)象
動(dòng)態(tài)的屬性
person.name(屬性)="Nicholas"(字符串值)``
我們不能給基本屬性的值添加屬性
## `復(fù)制變量值`
當(dāng)一個(gè)變量向另一個(gè)變量復(fù)制引用類型的值時(shí)究恤,同樣也會(huì)將存儲(chǔ)在變量對(duì)象中的值復(fù)制一份到新的變量分配空間中俭令,兩個(gè)變量實(shí)際上將引用同一個(gè)對(duì)象,因此改變其中一個(gè)變量部宿,就會(huì)影響另一個(gè)變量抄腔。
##`傳遞參數(shù)`
局部變量和全局變量
參數(shù)按照引用傳遞
## `檢測(cè)類型`
測(cè)試變量是不是基本數(shù)據(jù)類型 typeof操作符
如果變量的值時(shí)一個(gè)對(duì)象或null,檢測(cè)類型是object
`想知道是什么類型的對(duì)象用 instanceof`
ex:person instanceof Object如果變量是給定引用類型理张,則返回true赫蛇,如果檢測(cè)基本類型的值,則返回false雾叭,因?yàn)閌基本類型不是對(duì)象`
***
* ###執(zhí)行環(huán)境及作用域
`所有變量(包括基本類型和引用類型)都存在于一個(gè)執(zhí)行環(huán)境(也稱為作用域)當(dāng)中悟耘,
這個(gè)執(zhí)行 環(huán)境決定了變量額聲明周期,以及那一部分代碼可以訪問(wèn)其中的變量织狐。`
執(zhí)行環(huán)境定義了變量或函數(shù)有權(quán)訪問(wèn)的其他數(shù)據(jù)暂幼,決定他們各自的行為。
## `變量對(duì)象`
執(zhí)行環(huán)境的類型總共只有兩種移迫,全局和局部(函數(shù))
全局執(zhí)行環(huán)境是最外圍的一個(gè)執(zhí)行環(huán)境旺嬉,知道應(yīng)用程序退出才會(huì)被銷毀。
每個(gè)函數(shù)都有自己的執(zhí)行環(huán)境厨埋。當(dāng)執(zhí)行流進(jìn)入一個(gè)函數(shù)時(shí)鹰服,函數(shù)的環(huán)境會(huì)被推入到一個(gè)環(huán)境棧中,執(zhí)行之后揽咕,棧將其環(huán)境退出,把控制權(quán)返回給之前的執(zhí)行環(huán)境套菜。
## `延長(zhǎng)作用域鏈`
catch語(yǔ)句亲善,創(chuàng)建一個(gè)新的變量對(duì)象
with語(yǔ)句
## `沒(méi)有塊級(jí)作用域`
if語(yǔ)句:if語(yǔ)句中的變量聲明會(huì)將變量添加到當(dāng)前的執(zhí)行環(huán)境
for語(yǔ)句:for語(yǔ)句初始化變量的表達(dá)式所定義的變量即使在for循環(huán)結(jié)束后,依舊會(huì)存在于循環(huán)外部的執(zhí)行環(huán)境中逗柴。
## `es6有塊級(jí)作用域`
## `聲明變量`
使用var聲明的變量會(huì)自動(dòng)添加到函數(shù)的局部環(huán)境中蛹头;如果__初始化__沒(méi)有使用var聲明,該變量會(huì)自動(dòng)變添加到全局環(huán)境戏溺。
## `查詢標(biāo)識(shí)符`
***
* #####垃圾收集`
執(zhí)行環(huán)境會(huì)負(fù)責(zé)管理代碼執(zhí)行過(guò)程中使用的內(nèi)存渣蜗。
局部變量只在函數(shù)執(zhí)行的過(guò)程中存在
`標(biāo)記清除
引用計(jì)數(shù)
性能問(wèn)題
管理內(nèi)存`
__基本類型值__在內(nèi)存中占據(jù)固定大小,因此被保存在棧內(nèi)存中旷祸;
從一個(gè)變量向另一個(gè)變量復(fù)制基本類型的值耕拷,會(huì)創(chuàng)建這個(gè)值的一個(gè)副本。
__引用類型值__是對(duì)象托享,保存在堆內(nèi)存中骚烧。`
包含引用類型值的變量實(shí)際上包含的并不是對(duì)象本身浸赫,而是一個(gè)指向該對(duì)象的指針。
****
* #####引用類型
引用類型的值(對(duì)象)是引用實(shí)例的一個(gè)實(shí)例赃绊。
引用類型是一種__數(shù)據(jù)結(jié)構(gòu)__既峡,用于將數(shù)據(jù)和功能組織在一起,有時(shí)候也被稱為對(duì)象定義碧查,因?yàn)樗麄兠枋龅氖且活悓?duì)象所具有的屬性和方法运敢。
新對(duì)象是使用new操作符后跟這個(gè)一個(gè)構(gòu)造函數(shù)來(lái)創(chuàng)建的。
1. ``` javascript
var person = new Object();```
2.對(duì)象字面量表示法(key value)
var person={
"name":"hello"
"age":20;
};```
里面的屬性名會(huì)自動(dòng)轉(zhuǎn)換成字符串
訪問(wèn)對(duì)象屬性:
點(diǎn)表示法
person.name
括號(hào)表示法
person["name"]
-
Array類型
數(shù)據(jù)的有序列表忠售,數(shù)據(jù)的每一項(xiàng)可以保存任何類型的數(shù)據(jù)
var colors = new Array(20);//長(zhǎng)度為20的數(shù)組
var colors = new Array("red","blue","green");
可選擇省去new
- 數(shù)組字面量表示方法
var colors=["red","blue"]
* 檢測(cè)數(shù)組
`Array.isArray() `確定某個(gè)值到底是不是數(shù)組
*轉(zhuǎn)換方法
`toLocaleString()` `toString()` `valueOf()`
## `棧方法`
棧是一種LIFO(LAST-IN-FIRST-OUT*__后進(jìn)先出__*)的數(shù)據(jù)結(jié)構(gòu)传惠,也就是最新添加的項(xiàng)最早被移除。
而棧中項(xiàng)的插入(推入)和移除(彈出)档痪,只發(fā)生在棧的頂部涉枫。
`push()`接收任意數(shù)量的參數(shù),把他們逐個(gè)添加到數(shù)組末尾腐螟,并返回修改后數(shù)組的長(zhǎng)度愿汰。
`pop()`從數(shù)組的末端移除最后一項(xiàng),減少數(shù)組的length值乐纸,然后返回移除項(xiàng)
##`列隊(duì)方法`
列隊(duì)數(shù)據(jù)結(jié)構(gòu)的訪問(wèn)規(guī)則是FIFO(FIRST-IN-FIRST-OUT*__先進(jìn)先出__*)列隊(duì)在列表末端添加項(xiàng)衬廷,從列表的前端移除項(xiàng)。
模擬列隊(duì)
`push()`末端添加
`shift()`前端刪除 取得第一項(xiàng)刪除
`unshift()`前端添加
`pop()`末端刪除
##`重排序方法`
`reverse() `反轉(zhuǎn)數(shù)組順序
`sort()`比較的是字符串
接收一個(gè)比較函數(shù)作為參數(shù)汽绢,以便我們指定那個(gè)值位于那個(gè)值的前面吗跋。
##`操作方法`
`contat()`方法可以基于當(dāng)前數(shù)組中的所有項(xiàng)創(chuàng)建一個(gè)新數(shù)組。
`slice()`方法slice() 方法可提取字符串的某個(gè)部分宁昭,并以新的字符串返回被提取的部分,可以基于當(dāng)前數(shù)組中的一或多個(gè)項(xiàng)創(chuàng)建一個(gè)新的數(shù)組跌宛。如果只有一個(gè)參數(shù)的情況下,slice()方法返回從該參數(shù)指定位置開始到當(dāng)前數(shù)組末尾的所有項(xiàng)积仗。如果有兩個(gè)參數(shù)疆拘,該方法返回起始和結(jié)束位置之間的項(xiàng),但不包括結(jié)束位置的項(xiàng)寂曹。
```javascript
<script type="text/javascript">
var str="Hello happy world!"
document.write(str.slice(6,11));//happy
</script>
splice()
方法主要用途是向數(shù)組的中部插入項(xiàng)
刪除哎迄、插入、替換
位置方法
兩個(gè)方法都接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引
indexOf()
從數(shù)組的開頭開始向后查找
lastIndexOf()
則相反
迭代方法
每一項(xiàng)上運(yùn)行的函數(shù)和運(yùn)行該函數(shù)的作用域?qū)ο?br>
every()
隆圆、filter()
漱挚、forEach()
、map()
渺氧、some()
縮小方法
迭代數(shù)組所有項(xiàng)
縮小數(shù)組的方法 接收兩個(gè)參數(shù):一個(gè)在每一項(xiàng)上調(diào)用的函數(shù)和(可選的)作為縮小基礎(chǔ)的初始值旨涝,函數(shù)接受四個(gè)參數(shù):前一個(gè)值、當(dāng)前值侣背、項(xiàng)的索引和數(shù)組對(duì)象
reduce()
從數(shù)組的第一項(xiàng)開始遍歷
reduceRight()
從數(shù)組的最后一項(xiàng)開始遍歷
-
Date類型
var now = new Date();```
`Date.parse()` 接收一個(gè)表示日期的字符串參數(shù),并返回相應(yīng)的毫秒數(shù)
`Date.UTC()`(一月是0)
##`繼承的方法`
##`日期格式化`
##`日期/時(shí)間組件方法`
***
* #####RegExp類型
用來(lái)支持__正則表達(dá)式__
Perl
```javascript
var experssion =/pattern(模式)/flags(標(biāo)志);```
3個(gè)標(biāo)志:
`g`:全局模式
`i`:不區(qū)分大小寫的模式
`m`:多行模式
`一個(gè)正則表達(dá)式是一個(gè)模式和3個(gè)標(biāo)志的組合體`
模式中所使用的所有元字符都必須轉(zhuǎn)移
`([{\^$|)?*+.]}`
****
* #####Function類型
`函數(shù)實(shí)際上是對(duì)象颊糜。`
* 函數(shù)本身就是變量哩治,所以函數(shù)也可以作為值來(lái)使用,可以像傳遞參數(shù)把一個(gè)函數(shù)傳遞給另一個(gè)函數(shù)衬鱼,而且可以將一個(gè)函數(shù)作為另一個(gè)函數(shù)的結(jié)果返回
##`函數(shù)內(nèi)部屬性`
兩個(gè)特殊的對(duì)象:`arguments`和`this`
##`callee屬性业筏,階乘函數(shù)(遞歸算法)`
__this__引用的是函數(shù)數(shù)據(jù)以執(zhí)行的環(huán)境對(duì)象
函數(shù)名字僅僅是一個(gè)包含指針的變量而已
##`函數(shù)屬性和方法`
屬性:length(函數(shù)希望接受命名參數(shù)的個(gè)數(shù))
__prototype__是保存引用類型所有實(shí)例方法的真正存在。prototype是不可枚舉的鸟赫,因此使用for-in無(wú)法發(fā)現(xiàn)
`apply()`
`call()`
`bind()`
##`基本包裝類型`
作用域的兩個(gè)內(nèi)置對(duì)象: `Global` 和`Math`
Global--window對(duì)象
Math對(duì)象 輔助完成復(fù)雜的數(shù)學(xué)計(jì)算法
##`面向?qū)ο骮
修改屬性默認(rèn)的特性:`object.defineProperty()`蒜胖,如果不指定特性的默認(rèn)值,都是false
訪問(wèn)器的屬性
getter setter
定義多個(gè)屬性
`Object.defineProperties()`
讀取屬性的特性
`Object.getOwnPropertyDescriptor()`
***
* #####創(chuàng)建對(duì)象
* 工廠模式
用函數(shù)來(lái)封裝以特定接口創(chuàng)建對(duì)象的細(xì)節(jié)抛蚤,可以無(wú)數(shù)次的調(diào)用這個(gè)函數(shù)台谢。
* 構(gòu)造函數(shù)模式,創(chuàng)建特定類型的對(duì)象
構(gòu)造函數(shù)始終以一個(gè)大寫字母開頭岁经,而非構(gòu)造函數(shù)則以一個(gè)小寫字母開頭
構(gòu)造函數(shù)本身也是函數(shù)朋沮,只不過(guò)可以用來(lái)創(chuàng)建對(duì)象
`任何函數(shù),只要通過(guò)new操作符來(lái)調(diào)用缀壤,那它就可以作為構(gòu)造函數(shù)`
##`函數(shù)表達(dá)式`
##`函數(shù)聲明`
##`函數(shù)聲明提升`
執(zhí)行代碼之前會(huì)先讀取函數(shù)聲明
`function funName(){}`可以
##`函數(shù)表達(dá)式(匿名函數(shù)/拉姆達(dá)函數(shù))`
使用函數(shù)之前需要先賦值
```javascript
var funName=function(arg0,arg1,arg2){}```
***
* #####遞歸
遞歸函數(shù)是在一個(gè)函數(shù)通過(guò)名字調(diào)用自身的情況構(gòu)成的樊拓。
arguments.callee是一個(gè)指向正在執(zhí)行的函數(shù)的指針,在嚴(yán)格模式下塘慕,不能通過(guò)腳本訪問(wèn)arguments.callee筋夏,訪問(wèn)這個(gè)屬性會(huì)導(dǎo)致錯(cuò)誤
***
* #####閉包
閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù)(在函數(shù)內(nèi)部創(chuàng)建另一個(gè)函數(shù)),閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)图呢,是將函數(shù)內(nèi)部和函數(shù)外部連接起來(lái)的一座橋梁
每次定義一個(gè)函數(shù)条篷,都會(huì)產(chǎn)生一個(gè)作用域鏈(scope chain)。當(dāng)JavaScript尋找變量varible時(shí)(這個(gè)過(guò)程稱為變量解析)蛤织,總會(huì)優(yōu)先在當(dāng)前作用域鏈的第一個(gè)對(duì)象中查找屬性varible 赴叹,如果找到,則直接使用這個(gè)屬性指蚜;否則乞巧,繼續(xù)查找下一個(gè)對(duì)象的是否存在這個(gè)屬性;這個(gè)過(guò)程會(huì)持續(xù)直至找到這個(gè)屬性或者最終未找到引發(fā)錯(cuò)誤為止
***
* #####關(guān)于this對(duì)象
在全局函數(shù)中姚炕,this等于window,而當(dāng)函數(shù)作為某個(gè)對(duì)象的方法調(diào)用的時(shí)候丢烘,this等于那個(gè)對(duì)象柱宦。
匿名函數(shù)的執(zhí)行環(huán)境具有全局性,因此其this對(duì)象通常指向window播瞳。
`parameter`是指函數(shù)定義中參數(shù)掸刊,而`argument`指的是函數(shù)調(diào)用時(shí)的實(shí)際參數(shù)。
parameter=形參(formal parameter)赢乓, argument=實(shí)參(actual parameter)忧侧。
`Javascript語(yǔ)言特有的"鏈?zhǔn)阶饔糜?結(jié)構(gòu)(chain scope)石窑,子對(duì)象會(huì)一級(jí)一級(jí)地向上尋找所有父對(duì)象的變量。所以蚓炬,父對(duì)象的所有變量松逊,對(duì)子對(duì)象都是可見的,反之則不成立肯夏。`
在函數(shù)內(nèi)部沒(méi)有var的變量是全局變量经宏。
* 待續(xù)