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