作用域 預解析

2021-08-14 14:03:14 字數 1306 閱讀 8638

作用域概念預解析規則

作用域:在一定的空間、範圍、區域對內容進行讀寫!

瀏覽器 js解析器

1、會去找 var function引數等,

a=未定義 所有變數,在正式執行之前 ,都提前賦了乙個值 未定義;

fn1=function fn1() 所有的函式,在正式執行**之前,都是整個函式塊

這種叫做js 預解析 .預解析的時候,相同名字會覆蓋前面位置

2、逐行解讀** :表示式:= + - * / % ++!引數….. 表示式會更改 預解析的值

console.

log(a);//undefined

var a =

1; console.

log(a);//1

console.log(b);//   function b() 

var b = 1;

console.log(b);//1

functionb()

console.log

(b);

//1var b = 3;

console.log(b);//3

functionb()

console.log

(b);

//3 b()//報錯 此時a以經被更改為3

js支援函式作用域

js不支援塊級作用域(你可以自己閉包或其他方法實現),只支援函式作用域,函式呼叫時又會遵守預解析,變數的查詢是就近原則,去尋找var定義的變數

var a = 1;

function

fn1()

fn1();

console.log(a);//1

js作用域鏈

作用域鏈:當就近沒有找到的時候就去查詢外層。函式裡面的變數外面找不到.裡面找不到帶var的申明可以向外面找,遇到表示式會改預解析庫里的內容

var a = 1;

function

fn1()

fn1();

alert(a);//2

預解析中,碰到函式呼叫又會發生預解析#####`
var a = 1;

function

fn1(a)

fn1();

alert(a);//1

var a = 1;

function

fn1(a)

fn1(a);

console.log(a);//1

面試必備 作用域 作用域鏈 預解析

1.變數分為區域性變數和全域性變數,2.作用域 就是變數的使用範圍 所以,作用域也分為區域性作用域和全域性作用域 3.js中沒有塊級作用域,也就是說 一對大括號 定義的變數,這個變數可以在大括號外面使用。栗子1 栗子2 栗子3 4.函式中定義的變數是區域性變數 5.作用域鏈 變數的使用,從裡向外,層...

2 0 作用域和預解析

一 作用域份為全域性作用域和區域性作用域 作用域不僅有有變數作用域還有函式作用域 var a 10 a是全域性作用域 在 都能訪問和修改 function fn console.log b 這裡b是不存在的 會報function fn say 可以呼叫 fn console.log a 報錯 say...

js 函式 作用域 預解析

一 函式 定義 可以重複呼叫執行的 塊 一 函式的宣告和呼叫 1.宣告函式 1 命名函式 語法 function 函式名 2 函式表示式來宣告函式 匿名函式 語法 var 變數名 function eg var fun function fun 使用變數名來呼叫函式 2.呼叫函式 函式名 二 函式的...