js 學(xué)習(xí) -- 02

變量、作用域和內(nèi)存問(wèn)題

1.?基本類型值(簡(jiǎn)單的數(shù)據(jù)段),引用類型值(可能由多個(gè)值構(gòu)成的對(duì)象)

2.?動(dòng)態(tài)屬性

var person = new Object();
person.name = "dyh";
alert(person.name);

注意:不能給基本類型的值添加屬性,盡管這樣做不會(huì)報(bào)錯(cuò)。

var name = "dyh";
name.age = 12;
alert(name.age);  // undefined

3.?傳遞參數(shù)

ECMScript 中所以有的函數(shù)都是按值傳遞的。基本類型值則是復(fù)制值給函數(shù)內(nèi)的局部變量,引用類型則是傳指針。

4.?檢查類型
基本類型中使用 typeof:

var num = 1;
alert(typeof num);

引用類型中使用instanceof:

alert(person instanceof Array); // person 是 Array 對(duì)象嗎?
person instanceof Object;  // 始終是 true
隨意 instanceof 基本類型;    // 始終是 false 

5.?執(zhí)行環(huán)境及作用域

執(zhí)行環(huán)境定義了變量或者函數(shù)有訪問(wèn)的其他數(shù)據(jù),決定它們各自的行為。每個(gè)執(zhí)行環(huán)境都有一個(gè)與之關(guān)聯(lián)的變量對(duì)象(variable object),環(huán)境中定義的所有變量和函數(shù)都保存在這個(gè)對(duì)象中,我們無(wú)法訪問(wèn),但解析器可以使用。

全局執(zhí)行環(huán)境是最外圍的執(zhí)行環(huán)境,每個(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)返回之前的環(huán)境。

作用域鏈:保證執(zhí)行環(huán)境有權(quán)訪問(wèn)的所有變量和函數(shù)的有序訪問(wèn)。全局執(zhí)行環(huán)境的變量對(duì)象始終是作用域鏈中的最后一個(gè)對(duì)象。(相當(dāng)于繼承,子級(jí)能訪問(wèn)父級(jí),父級(jí)不能訪問(wèn)子級(jí))

6.?延長(zhǎng)作用域鏈

  • try-catch 語(yǔ)句的catch塊
  • with 語(yǔ)句

這兩個(gè)語(yǔ)句都會(huì)在作用域鏈的前端添加一個(gè)對(duì)象變量,with 是將指定的對(duì)象添加到域鏈中,catch 是創(chuàng)建一個(gè)新的變量對(duì)象,包含被拋出的錯(cuò)誤對(duì)象聲明。

7.?沒(méi)有塊級(jí)作用域(重要

在c語(yǔ)言中,花括號(hào)封閉的代碼塊都有自己的作用域,但在javascrip中并不是這樣,如:

if (true) {
    var num = 100;
}
alert(num);  // num = 100

for (var i = 0; i < 10; i++) {

}
alert(i);  // i = 10

8.? 垃圾收集
javascript 具有自動(dòng)垃圾收集機(jī)制。類似java??梢允謾C(jī)釋放,如:

var person = new Object();

person = null;  // 手動(dòng)釋放引用

小結(jié)

這一章最需要注意的是:沒(méi)有塊級(jí)作用域。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容