1、what?
指的是變數和函式的可訪問範圍,作用域分為兩類:函式作用域和全域性作用域
1)函式作用域:只在定義的函式內允許訪問變數和函式
2)全域性作用域:一經定義,在任何位置處都能訪問
2、函式作用域中的變數
在某個函式中宣告的變數,就是函式作用域中變數,也可以稱為「區域性變數」。
3、全域性作用域中的變數
一經宣告,任何位置都可以使用。宣告方式:
1)將變數宣告在最外層,所有的function之外
2)宣告變數時,不使用var關鍵字,一律是全域性變數,但有風險,因此不建議這樣使用
注意:宣告提前:js程式正式執行前,會將所有var宣告的變數以及function宣告的函式,預讀到所在作用域的頂端。但賦值還保留在原位置上。
對於變數有區域性變數和全域性變數,一般會用 var宣告變數
1、區域性變數
將函式宣告的時候宣告在某個函式內部,就是區域性函式了。在被呼叫的時候也這能在區域性區域內呼叫,超出範圍就會報錯了。
ps:區域性變數會在函式執行後就被刪除
2、全域性變數
在函式外宣告的變數是全域性變數,網頁上的所有指令碼和函式都能訪問它。
ps:全域性變數會在頁面關閉後被刪除
不經變數有分兩種,而且函式也有全域性函式和區域性函式,這兩種和變數大同小異,在函式前面使用關鍵字function
function num()
1、帶引數的函式
function num(num1,num2)
其中num1, num2是兩個引數,一般情況下會將引數作為變數的形式宣告
注意:基本資料型別的資料在做引數傳遞時,盡量不要在函式中修改,因為即使修改了,也不會影響到資料
2、帶返回值的函式
function num()
其中x就是函式的返回值 JS的變數與函式
變數 var a 定義變數a var a 123 定義變數a,並且賦值為123 js中的變數是若型別的,變數占用固定記憶體空間,因此是直接量 函式 function fn 傳參 宣告函式fn 定義式函式 即函式宣告 var a function 傳參 先定義變數a與乙個匿名函式,並將匿名函式賦值給變...
JS 變數提公升與函式提公升
在 es6 出來之前,沒有塊級作用域,只有全域性作用域 和 函式作用域。變數提公升指的是 將變數宣告提公升到它所在作用域的最開始部分。例子 console.log foo undefined var foo 變數提公升 console.log foo 變數提公升 相當於 var foo consol...
js中變數提公升與函式變數重名
var a 1 function b b console.log a 輸出結果為1 進行變數提公升之後的 var a function b a 10 return a 1 b console.log a 在函式b中先通過function關鍵字宣告了乙個a函式,相當於 var a function 這...