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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript中的作用域、作用域链、预解析

發布時間:2024/9/30 javascript 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript中的作用域、作用域链、预解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作用域:

/* 變量--->局部變量和全局變量 * 作用域:就是變量的適用范圍 * 局部作用域和全局作用域 * js中沒有快級作用域---一對括號中定義的變量,這個變量可以在大括號外面使用 * 函數中定義的變量是局部變量 * */ // 樣例1 --- 全局變量 while (true){var num = 10;break; } console.log(num); // 樣例2 --- 全局變量 {var num2 = 100; } console.log(num2); // 樣例3 --- 全局變量 if(true){var num3 = 1000; } console.log(num3); // 樣例4 --- 局部變量 function fun1() {var num4 = 10000; } console.log(num4);

作用域鏈:

/*作用域鏈:變量的使用,從里往外,層層的搜索,搜索到了就可以直接使用了 * 層層搜索,搜索到0級作用域的時候,如果還是沒有那就報錯 * */ // var num = 10; // 作用域鏈 級別:0 function f1(){// var num = 20; // 作用域鏈 級別:1function f2(){var num = 30; // 作用域鏈 級別:2console.log(num);} } f1();

預解析:(變量提升)

JavaScript 中,函數及變量的聲明都將被提升到函數的最頂部。

JavaScript 中,變量可以在使用后聲明,也就是變量可以先使用再聲明。

JavaScript 只有聲明的變量會提升,初始化的不會。

/*預解析:就是在瀏覽器解析代碼之前,把變量的聲明核函數的聲明提前(提升)到該級作用域的最上面*/ // 變量的提升 // var num; console.log(num);?? // undefined var num = 100; // 函數的聲明被提前了 f1();?? // 使用 function f1(){ // 聲明console.log("設個函數被執行了!"); } // 下面不能執行 // var f2; f2(); var f2 = function () {console.log(this.name); // f2 is not a function }

總結

以上是生活随笔為你收集整理的JavaScript中的作用域、作用域链、预解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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