作用域與作用域鏈的易錯題

2021-09-13 14:04:56 字數 929 閱讀 7158

**執行:

1)預解析

變數的作用域提公升:

js執行之前遇到 var function 引數 就會把這些東西提公升到**的最開始位置

變數放到預解析倉庫的時候,js會主動給變數附乙個值:undefined

函式放到預解析倉庫的時候,是乙個完整的函式塊

如果函式和變數重名了,那麼剔除變數,留下函式

2)逐行解讀

表示式: + = ++ -- % 引數...

一組**的集合,返回乙個值。

a,有***的表示式:var a = 1

b,純計算的表示式: 3+4

特徵:可以求出來乙個值

表示式可以修改預解析的值!!!

alert(a);        //function a()

var a = 1;

alert(a); //1

function a()

alert(a); //1

var a = 3;

alert(a); //3

function a()

alert(a); //3

var a = 1;

function fn1()

fn1();

alert(a); //1

var a = 1;

function fn1(a)

fn1();

alert(a); //1

var a = 1;

function fn1(a)

fn1(a);

alert(a); //1

作用域 作用域鏈

理解 就是一塊 地盤 乙個 段所在的區域 它是靜態的 相對於上下文物件 在編寫 時就確定了 分類全域性作用域 函式作用域 沒有塊作用域 es6有了 作用隔離變數,不同作用域下同名變數不會有衝突 區別1全域性作用域之外,每個函式都會建立自己的作用域,作用域在函式定義時就已經確定了。而不是在函式呼叫時 ...

作用域,變數作用域,作用域鏈知識

第2章 變數作用域 第3章 作用域鏈 預覽 1.全域性作用域 整個script標籤下 或者是單獨的js檔案 外部js 2.區域性作用域也叫 函式作用域 在函式內部就是區域性作用域 這個 的名字 變數 只在函式內部起作用和效果 3.不同作用域下,定義相同變數名是不衝突的。如果是在同一作用域宣告2個相同...

作用域和作用域鏈

全域性作用域 全域性的變數執行環境 函式作用域 函式內部的變數執行環境 每個函式都有自己的執行環境,當執行流進入乙個函式時,函式的環境就會被推入乙個環境棧中。函式執行之後,棧將環境彈出,把控制權返回給之前的執行環境。全域性作用域只要頁面不解除安裝,就一直存在,不釋放。函式每次在呼叫時,都會形成乙個作...