日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js作用域链以及全局变量和局部变量

發布時間:2025/7/14 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js作用域链以及全局变量和局部变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
> [帶var] > 在當前作用于中聲明了一個變量,如果當前是全局作用域,也相當于給全局作用域設置了一個屬性叫做a ```javascript //=>變量提升:var a; <=>window.a=undefined; console.log(a);//undefined var a = 12; console.log(a);//12 console.log(window.a);//window['a']在‘全局作用域’中,我們聲明了一個變量,相當于全局對象window增加了一個屬性名 ```
> [不帶var] > 在全局作用域中,如果不帶var,僅僅是給全局對象設置了一個新的屬性名(把window.省略了) ```javascript // console.log(a);//=>Uncaught ReferenceError: a is not defined a = 12;//<=>window.a=12 console.log(a);//=>12 console.log(window.a);//=>12 ```
window.setInterval();//window.可以省略 window.document.getElementById();//window.可以省略
> 項目中,如果你的目的是創建變量,最好不要省略var,這樣會嚴謹一些
### 作用域鏈 > 函數執行形成一個私有的作用域(保護私有變量),進入到私有作用域中,首先變量提升(聲明過的變量是私有的),接下來代碼執行 > 1、執行的時候遇到一個變量,如果這個變量是私有的,那么按照私有變量處理即可; ```javascript function fn() { //=>私有作用域 //變量提升:var a;(私有變量) console.log(a);//->undefined var a = 12; console.log(a);//->12 } fn(); console.log(a);//->Uncaught ReferenceError: a is not defined 閉包機制:私有作用域保護里面的私有變量不收外界的干擾不收外界的干擾
``` > 2、如果當前這個變量不是私有的,我們需要向它的上級作用域進行查找,上級如果也沒有,則繼續向上查找,一直找到window全局作用域為止,我們把這種查找機制叫做**`作用域鏈`** > 1)如果上級作用域有,我們當前操作的都是上級作用域中的變量(假如我們在當前作用域把值改了,相當于把上級作用域中的這個值給修改了) > 2)如果上級作用域中沒有這個變量(找到window也沒有); > 變量 = 值:相當于給window設置了一個屬性,以后再操作window下就有了 例子: //=>變量提升:var x;var y; fn=>aaafff111 console.log(x, y); var x = 10, y = 20; function fn() { //=>[私有作用域] //=>變量提升:var x;(x是私有變量) console.log(x, y);//=>undefined 20 var x = y = 100;//=>x=100(私有)y=>100(全局) console.log(x, y);//=>100 100 } fn(); console.log(x, y);//=>10 100 結果: undefined undefined undefined 20 100 100 10 100 注意事項:
// var x = 10,y=10;等同于 var x = 10;var y =10;
// var x = y = 100; // var x = 100;(私有) // y = 100;//->此處的y是不帶var的(全局)

```javascript function fn(){ a = 12; console.log(a);//->12 } fn(); console.log(a);//->12 ```

轉載于:https://www.cnblogs.com/kpengfang/p/9865683.html

總結

以上是生活随笔為你收集整理的js作用域链以及全局变量和局部变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。