學習目標:能夠說出Javascript的兩種作用域 能夠區分全局變數和局部變數 能夠說出如何在作用域鏈中查找變數的值 1.作用域 <script> //1.javaScript作用域:就是代碼名字(變數)在某個範圍內起作用和效果 目的是為了提高程式的可靠性更重要的是減少命名衝突。 //2.js的作用 ...
學習目標:能夠說出Javascript的兩種作用域
能夠區分全局變數和局部變數
能夠說出如何在作用域鏈中查找變數的值
1.作用域
<script> //1.javaScript作用域:就是代碼名字(變數)在某個範圍內起作用和效果 目的是為了提高程式的可靠性更重要的是減少命名衝突。 //2.js的作用域(es6)之前:全局作用域 局部作用域 //3.全局作用域:整個script標簽 或者是一個單獨的js文件 var num = 10; //4.在函數內部就是局部作用域(函數作用域) 這個代碼的名字只在函數內部起效果和作用 function fn (){ //局部作用域 var num = 20; } </script>
2.1變數作用域的分類
根據作用域的不同 變數可以分為兩種:
全局變數
局部變數
<script> //變數的作用域:根據作用於的不同我們變數分為全局變數和局部變數 //1.全局變數:在全局作用域下的變數,在全局下都可使用 // 註意:如果在函數內部 沒有聲明直接賦值的變數也屬於全局變數 var num = 10; //num就是一個全局變數 console.log(num); function fn(){ console.log(); var num = 10; } //2.局部變數 在局部作用域下的變數 後者在函數內部的變數就是 局部變數 //註意函數的形參也可以看作局部變數 3.從執行效率來看全局和局部 //(1)全局變數只有在記憶體關閉的時候才會銷毀,比較占記憶體資源 //(2)局部變數當我們程式執行完畢就會銷毀比較節約記憶體資源 </script>
3.作用域鏈(很簡單)就近原則
<script> //作用域鏈:內部函數訪問外部函數的變數,採取的是鏈式查找的方式來決定取哪個值,這種結構我們稱之為作用域鏈 // 鏈式查找 就近原則 var num = 10; function fn(){//外部函數 var num = 20; function fun(){//內部函數 console.log(num); } } </script>