執(zhí)行環(huán)境
執(zhí)行環(huán)境是JavaScript中最為重要的概念之一硝全。執(zhí)行環(huán)境定義了變量或函數(shù)有權(quán)訪問的其他數(shù)據(jù)钥勋,決定了他們各自的行為叶摄。每個執(zhí)行環(huán)境都有一個與之關(guān)聯(lián)的變量對象拍摇,環(huán)境中定義的所有變量核函數(shù)保存在這個對象中。雖然編寫的代碼無法訪問這個對象掩完,凡是解析器會在處理數(shù)據(jù)時在后臺用到他噪漾。
全局執(zhí)行環(huán)境是最外圍的一個執(zhí)行環(huán)境。在web瀏覽器中且蓬,全局執(zhí)行環(huán)境唄認為是window對象欣硼,因此所有的全局變量和函數(shù)是作為window對象的屬性和方法創(chuàng)建的。某個執(zhí)行環(huán)境中所有的代碼執(zhí)行完畢后缅疟,該環(huán)境被銷毀分别,保存在其中的所有變量和函數(shù)定義也隨之銷毀。
作用域鏈
當代碼在一個環(huán)境執(zhí)行時存淫,會創(chuàng)建變量對象的一個作用域鏈耘斩,保證對執(zhí)行環(huán)境有權(quán)訪問的所有變量和函數(shù)的有序訪問。
函數(shù)在執(zhí)行的過程中桅咆,先從自己內(nèi)部找變量
如果找不到括授,再從創(chuàng)建當前函數(shù)所在的作用域去找, 以此往上