91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ES6中塊級作用域的案例分析

發布時間:2020-10-15 18:23:49 來源:億速云 閱讀:134 作者:小新 欄目:web開發

這篇文章主要介紹了ES6中塊級作用域的案例分析,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

全局作用域和函數作用域

在ES5中,只全局作用域和函數作用域。這會導致函數作用域覆蓋了全局作用域;亦或者循環中的變量泄露為全局變量。

例如:

//  1.函數作用域覆蓋了全局作用域,發生了變量提升,函數聲明大于var聲明的變量,因此函數里面的a提到了前面,在打印a,初始化一個undefined給a,所以打印出了undefined。
var a = '1';
function fn() {
    console.log(a);
    if (3<2) {
        var a  = 3;
    }
}
fn(); // undefined
// 2.循環中的變量泄露為全局變量
for(var i=0;i<5;i++) {
    console.log(i);
}
console.log(i); // 5;

ES6的塊級作用域

用let命令新增了塊級作用域,外層作用域無法獲取到內層作用域,非常安全明了。即使外層和內層都使用相同變量名,也都互不干擾。

// 1.外層作用域無法獲取到內層作用域
function fn1() {
    let a = 41;
    if(1 == 1) {
        let a = 3;
        console.log(2,a); // 2 3
    }
    console.log(1,a); // 1 41
}
fn1();

{  
    {
        let food = 'apple';
    }
    console.log(food); // Uncaught ReferenceError: food is not defined
}

{  
    {
        let food = 'apple';
    }
    console.log(food); // Uncaught ReferenceError: food is not defined
}

// 2. 外層和內層都使用相同變量名,也都互不干擾
{  
    {
        let food = 'apple';
        console.log(food); // apple
    }
    let food = 'orange';
    console.log(food); // orange
}

塊級作用域和和函數聲明

在ES5中,函數只能在頂級作用域和函數作用域中聲明,不能在塊級作用域中聲明。但是在ES6中,函數可以在塊級作用域中聲明。

但是會有一定的問題,因為函數聲明會被提到代碼的最前面。所以會報錯,最好在ES6中用函數表達式來表示一個函數。

例如:

//1.函數聲明報錯
{
    if (4 < 2) {
        function fn() {
            console.log('我在函數里面!');
        }
    }
}
fn(); // Uncaught TypeError: fn is not a function
//2.函數表達式沒錯
{
    let fa = '111';
    let fn = function () {
        console.log('我在函數里面!');
    }
    console.log(fa,fn); // 111 ? () { console.log('我在函數里面!');}
}

注意:ES6中允許函數在塊級作用域中可以聲明的條件是必須在大括號里面,否則就會報錯。

// 1.報錯的情況
if (4>2) {
    let fn = function () {};
}

//2.報錯的情況
if (4>2)
    let fn = function () {}; // Uncaught SyntaxError: Lexical declaration cannot appear in a single-statement context

感謝你能夠認真閱讀完這篇文章,希望小編分享ES6中塊級作用域的案例分析內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

es6
AI

凤山市| 镇江市| 平湖市| 聊城市| 安西县| 南岸区| 乐陵市| 嘉祥县| 丹凤县| 临潭县| 阿拉善左旗| 讷河市| 两当县| 鹿泉市| 邳州市| 彩票| 黄浦区| 尼勒克县| 南澳县| 社旗县| 嘉峪关市| 仪征市| 吉林省| 普兰店市| 杭锦后旗| 新乡县| 大田县| 舒兰市| 毕节市| 奉节县| 文登市| 青河县| 宜章县| 化隆| 枝江市| 金溪县| 西平县| 明光市| 鄄城县| 沙湾县| 朝阳市|