国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ES6部分特性小結(jié)

pinecone / 2549人閱讀

摘要:但是或者,會(huì)將聲明關(guān)進(jìn)一個(gè)小黑屋也是暫時(shí)性死區(qū),只有執(zhí)行到變量聲明這句語句時(shí),變量才會(huì)從小黑屋被放出來,才能安全使用這個(gè)變量。

前言

踩著前人的肩膀,努力前行。參考了很多前人的文章。

1.變量聲明const和let

es6之前聲明變量只能用var,var的特點(diǎn)是無論聲明在何處,都會(huì)被視為聲明在函數(shù)的最頂部(不在函數(shù)內(nèi)即在全局作用域的最頂部)

function test(){
    if(false){
        var name = "zhangsan";
    }else{
        console.log(name);  //此處訪問值為undefined    
    }
    console.log(name);  //此處訪問值為undefined
}

可以看到雖然打印結(jié)果是undefined,但是并沒有報(bào)錯(cuò)。那是因?yàn)楸籮s編譯過結(jié)果就變成了

function test(){
    var name;   //這就是js的變量提升
    if(false){
        name = "zhangsan";
    }else{
        console.log(name);  //此處訪問值為undefined    
    }
    console.log(name);  //此處訪問值為undefined
}

再來看ES6新增的let,const。它們的作用域只在一個(gè)函數(shù)內(nèi)部或者一個(gè)代碼塊內(nèi)部。

  function test() {
    if(flag) {
       let name = "zhangsan"
    } else {
        //此處訪問會(huì)直接報(bào)錯(cuò)。訪問不到。
        console.log(test)
    }
  }

const作用域和let一樣。但是他通常被用于定義常量。就是它的值被設(shè)置完成后就不能再修改了。

    const name = "lux"
    name = "joe" // 再次賦值此時(shí)會(huì)報(bào)錯(cuò)

但是,如果 const 的是一個(gè)對(duì)象,對(duì)象所包含的值是可以被修改的。抽象一點(diǎn)兒說,就是對(duì)象所指向的地址不能改變,而變量成員是可以修改的。

    const student = { name: "cc" }
    // 可以成功
    student.name = "yy";
    // 如果這樣子就會(huì)報(bào)錯(cuò)了
    student  = { name: "yy" };

還有TDZ(暫時(shí)性死區(qū))

{
    console.log(value) // 報(bào)錯(cuò)
    let value = "lala"
}

我們都知道,JS引擎掃描代碼時(shí),如果發(fā)現(xiàn)變量聲明,用 var 聲明變量時(shí)會(huì)將聲明提升到函數(shù)或全局作用域的頂部。但是 let 或者 const,會(huì)將聲明關(guān)進(jìn)一個(gè)小黑屋也是TDZ(暫時(shí)性死區(qū)),只有執(zhí)行到變量聲明這句語句時(shí),變量才會(huì)從小黑屋被放出來,才能安全使用這個(gè)變量。

2.未完待續(xù)

本文基本是參考https://www.jianshu.com/p/287...。原文說的更仔細(xì),有更多的內(nèi)容。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/96964.html

相關(guān)文章

  • ES6小結(jié)

    摘要:表示變量表示常量,和都是塊級(jí)作用域。發(fā)起異步請(qǐng)求面試題生成器是能返回一個(gè)迭代器的函數(shù)。方法不僅返回值,它返回的對(duì)象具有兩個(gè)屬性和。你不必到處使用回調(diào)函數(shù),而是可以建立貌似同步的代碼,但實(shí)際上卻使用來等待異步操作結(jié)束。 原文鏈接 es6中有很多特性,使javascript語法更加豐滿,總結(jié)一波常用的es6知識(shí)點(diǎn)。 1.變量聲明const和let 在ES6之前,我們都是用var關(guān)鍵字聲明變...

    EscapedDog 評(píng)論0 收藏0
  • React類、ES7屬性初始化(第二部分

    摘要:組建屬性初始化默認(rèn)值類型在中將下面的代碼替換成下面的代碼最后一步將初始狀態(tài)從構(gòu)造函數(shù)中轉(zhuǎn)變成屬性初始化。在構(gòu)造函數(shù)的后天添加正確的代碼你需要把狀態(tài)初始化代碼從構(gòu)造函數(shù)中刪除。 這是React和ECMAScript6結(jié)合使用系列文章的第二篇。 下面是所有系列文章章節(jié)的鏈接: React 、 ES6 - 介紹(第一部分) React類、ES7屬性初始化(第二部分) React類,方法綁定...

    VioletJack 評(píng)論0 收藏0
  • 你該知道的ES6那些事兒

    摘要:最近重構(gòu)了一個(gè)項(xiàng)目,引入了部分用法,最大的感受是讓這門語言變得更加嚴(yán)謹(jǐn),更加方便。通過該方法獲得位置后還得比較一次才能判斷是否存在。再來看看的寫法使用數(shù)組來初始化一個(gè),構(gòu)造器能確保不重復(fù)地使用這些值。下面提供鏈接,供有興趣的朋友參考。 最近重構(gòu)了一個(gè)SPA項(xiàng)目,引入了部分ES6用法,最大的感受是ES6讓javascript這門語言變得更加嚴(yán)謹(jǐn),更加方便。本篇將結(jié)合實(shí)戰(zhàn)經(jīng)驗(yàn),對(duì)最常用的部...

    CoffeX 評(píng)論0 收藏0
  • 【W(wǎng)eb全棧課程三】ES6特性介紹(下)

    摘要:示例運(yùn)行函數(shù)彈出彈出函數(shù)接收參數(shù),返回值。其中,返回一個(gè)對(duì)象,是的返回值,代表函數(shù)是否執(zhí)行完成。 ES6特性介紹(下) ES6新的標(biāo)準(zhǔn),新的語法特征:1、變量/賦值2、函數(shù)3、數(shù)組/json4、字符串5、面向?qū)ο?、Promise7、generator8、ES7:async/await 《【W(wǎng)eb全棧課程二】ES6特性介紹(上)》見:https://segmentfault.com/a...

    wangshijun 評(píng)論0 收藏0
  • ES6系列文章 對(duì)象字面量

    摘要:使得聲明對(duì)象字面量更加簡單,提供了屬性簡寫和方法簡寫功能,屬性名計(jì)算的新特性。屬性簡寫在及以前的版本中,對(duì)象字面量只支持鍵值對(duì)集合。實(shí)際業(yè)務(wù)中,對(duì)象字面量的初始化會(huì)有一定的代碼重復(fù)。 showImg(https://segmentfault.com/img/bVWd8N?w=320&h=235); ECMAScript6使得聲明對(duì)象字面量更加簡單,提供了屬性簡寫和方法簡寫功能,屬性名計(jì)...

    snifes 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<