您好,登錄后才能下訂單哦!
小編給大家分享一下JavaScript中的作用域是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
作用域是可訪問變量的集合。
JavaScript 作用域
在 JavaScript 中, 對象和函數同樣也是變量。
在 JavaScript 中, 作用域為可訪問變量,對象,函數的集合。
JavaScript 函數作用域: 作用域在函數內修改。
JavaScript 局部作用域
變量在函數內聲明,變量為局部作用域。
局部變量:只能在函數內部訪問。
// 此處不能調用 carName 變量 function myFunction() { var carName = "Volvo"; // 函數內可調用 carName 變量 }
因為局部變量只作用于函數內,所以不同的函數可以使用相同名稱的變量。
局部變量在函數開始執行時創建,函數執行完后局部變量會自動銷毀。
JavaScript 全局變量
變量在函數外定義,即為全局變量。
全局變量有 全局作用域: 網頁中所有腳本和函數均可使用。
var carName = " Volvo"; // 此處可調用 carName 變量 function myFunction() { // 函數內可調用 carName 變量 }
如果變量在函數內沒有聲明(沒有使用 var 關鍵字),該變量為全局變量。
以下實例中 carName 在函數內,但是為全局變量。
// 此處可調用 carName 變量 function myFunction() { carName = "Volvo"; // 此處可調用 carName 變量 }
JavaScript 變量生命周期
JavaScript 變量生命周期在它聲明時初始化。
局部變量在函數執行完畢后銷毀。
全局變量在頁面關閉后銷毀。
函數參數
函數參數只在函數內起作用,是局部變量。
HTML 中的全局變量
在 HTML 中, 全局變量是 window 對象: 所有數據變量都屬于 window 對象。
//此處可使用 window.carName function myFunction() { carName = "Volvo"; }
你知道嗎?
你的全局變量,或者函數,可以覆蓋 window 對象的變量或者函數。
局部變量,包括 window 對象可以覆蓋全局變量和函數。
補充
ES6 中的 let 關鍵字
let 允許你聲明一個作用域被限制在塊級中的變量、語句或者表達式。與var關鍵字不同的是,它聲明的變量只能是全局或者整個函數塊的。
let 語法:
let var1 [= value1] [, var2 [= value2]] [, ..., varN [= valueN]];
let 聲明的變量只在其聲明的塊或子塊中可用,這一點,與 var 相似。二者之間最主要的區別在于 var 聲明的變量的作用域是整個封閉函數。
let 和 var 的區別代碼實例:
function varTest() { var x = 1; if (true) { var x = 2; // 同樣的變量! console.log(x); // 2 } console.log(x); // 2 } function letTest() { let x = 1; if (true) { let x = 2; // 不同的變量 console.log(x); // 2 } console.log(x); // 1 }
看完了這篇文章,相信你對JavaScript中的作用域是什么有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。