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

資訊專欄INFORMATION COLUMN

Typescript Handbook 精簡版之變量聲明

aisuhua / 2257人閱讀

摘要:變量聲明和是新出的兩個(gè)變量聲明的方式。而新版的引入了關(guān)鍵字,用以聲明一個(gè)塊級(jí)域的本地變量,這樣能避免一些問題。作為的超集,自然也是支持和的。這意味著變量可以在聲明之前使用,這個(gè)行為叫做。本文參考變量聲明翻譯版變量聲明參考文檔參考文檔參考文檔

變量聲明

letconst 是JavaScript新出的兩個(gè)變量聲明的方式。前面說過letvar類似,但是它們的作用域是不一樣的。

關(guān)于作用域,在ES6之前的Javascript中,函數(shù)體是唯一能能夠創(chuàng)建新作用域的地方。那時(shí)候沒有let,用var聲明的變量,作用域要么是全局,要么是函數(shù)體,沒有塊級(jí)的作用域(塊作用域變量在包含它們的塊外部或for循環(huán)外部是不能被訪問的)。而新版的Javascript引入了let關(guān)鍵字,用以聲明一個(gè)塊級(jí)域的本地變量,這樣能避免一些問題。

至于const,它的作用域和let一樣,但是是聲明創(chuàng)建一個(gè)只讀常量,這里要注意一下,這并不意味著該常量指向的值不可變,而是該常量只能被賦值一次!

舉個(gè)例子:

// numLivesForCat的值不能再變了
const numLivesForCat = 9;
const kitty = {
    name: "Aurora",
    numLives: numLivesForCat,
}

// 錯(cuò)誤,kitty指向的對(duì)象不能變
kitty = {
    name: "Danielle",
    numLives: numLivesForCat
};

// 沒問題,對(duì)象的屬性可以變化
kitty.name = "Rory";
kitty.name = "Kitty";
kitty.name = "Cat";
kitty.numLives--;

另外,使用const定義常量時(shí),一定要初始化。

Typescript作為Javascript的超集,自然也是支持letconst的。

該用哪個(gè)

const沒什么好說的,你需要常量就用它,不需要就不用。但是letvar要比較一下。

使用var聲明變量時(shí),不管你聲明多少次,你得到的只有一個(gè)變量,而使用let時(shí),同一個(gè)變量名在同一作用域內(nèi)聲明一次以上會(huì)報(bào)錯(cuò)。

使用var時(shí)很容易出bug,比如:

function sumMatrix(matrix: number[][]) {
    var sum = 0;
    for (var i = 0; i < matrix.length; i++) {
        var currentRow = matrix[i];
        for (var i = 0; i < currentRow.length; i++) {
            sum += currentRow[i];
        }
    }

    return sum;
}

里層for循環(huán)中的i會(huì)覆蓋外層的i,因?yàn)閕引用的都是相同的函數(shù)作用域內(nèi)的變量。

但是如果把var換成let,內(nèi)層的for循環(huán)自己是一個(gè)塊級(jí)作用域,會(huì)屏蔽外部的作用域中的相同名字的變量,所以這兩個(gè)i會(huì)井水不犯河水。

另外,因?yàn)?b>var是函數(shù)作用域,所以對(duì)于一個(gè)var聲明的變量,你可以先使用再聲明:

bla = 2;
var bla;
// ...

// 可以理解為下面這樣:

var bla;
bla = 2;

引用一段mozilla文檔中的話:

由于變量聲明(以及其他聲明)總是在任意代碼執(zhí)行之前處理的,所以在代碼中的任意位置聲明變量總是等效于在代碼開頭聲明。這意味著變量可以在聲明之前使用,這個(gè)行為叫做“hoisting”。

嗯,使用var時(shí),這叫變量聲明提升,但是如果你使用let時(shí)也這樣做,這叫錯(cuò)誤! 塊級(jí)作用域的變量的一個(gè)特點(diǎn)是,它們不能在被聲明之前使用

最后,建議盡量用let替換var

本文參考:

Typescript Handbook 變量聲明

Typescript Handbook 翻譯版變量聲明

mozilla Javascript參考文檔 var

mozilla Javascript參考文檔 let

mozilla Javascript參考文檔 const

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

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

相關(guān)文章

  • 從 JavaScript 到 TypeScript - 聲明類型

    摘要:要為變量或者常量指定類型也很簡單,就是在變量常量名后面加個(gè)冒號(hào),再指定類型即可,比如聲明函數(shù)是類型,即返回值是類型聲明參數(shù)是類型聲明是無返回值的聲明是這段代碼演示了對(duì)函數(shù)類型參數(shù)類型和變量類型地聲明。變量函數(shù)參數(shù)和返回值需要申明類型。 從 JavaScript 語法改寫為 TypeScript 語法,有兩個(gè)關(guān)鍵點(diǎn),一點(diǎn)是類成員變量(Field)需要聲明,另一點(diǎn)是要為各種東西(變量、參數(shù)...

    Flands 評(píng)論0 收藏0
  • TypeScript - 一種思維方式

    摘要:怎么影響了我的思考方式對(duì)前端開發(fā)者來說,能強(qiáng)化了面向接口編程這一理念。使用的過程就是在加深理解的過程,確實(shí)面向接口編程天然和靜態(tài)類型更為親密。摘要: 學(xué)會(huì)TS思考方式。 原文:TypeScript - 一種思維方式 作者:zhangwang Fundebug經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有。 電影《降臨》中有一個(gè)觀點(diǎn),語言會(huì)影響人的思維方式,對(duì)于前端工程師來說,使用 typescript 開...

    noONE 評(píng)論0 收藏0
  • typescript - 一種思維方式

    摘要:怎么影響了我的思考方式對(duì)前端開發(fā)者來說,能強(qiáng)化了面向接口編程這一理念。使用的過程就是在加深理解的過程,確實(shí)面向接口編程天然和靜態(tài)類型更為親密。 電影《降臨》中有一個(gè)觀點(diǎn),語言會(huì)影響人的思維方式,對(duì)于前端工程師來說,使用 typescript 開發(fā)無疑就是在嘗試換一種思維方式做事情。 其實(shí)直到最近,我才開始系統(tǒng)的學(xué)習(xí) typescript ,前后大概花了一個(gè)月左右的時(shí)間。在這之前,我也在...

    CKJOKER 評(píng)論0 收藏0
  • 翻譯 | 開始使用 TypeScript 和 React

    摘要:原文地址原文作者譯者校對(duì)者和其他人有一些關(guān)于比較好的博文,跟隨這些博文,我最近開始使用。今天,我將展示如何從零開始建立一個(gè)工程,以及如何使用管理構(gòu)建過程。我也將陳述關(guān)于的第一印象,尤其是使用和。 原文地址:Getting started with TypeScript and React 原文作者:Jack_Franklin 譯者:luxj 校對(duì)者:veizz Tom Dale...

    superw 評(píng)論0 收藏0
  • Typescript 基礎(chǔ)(二)函數(shù)

    摘要:調(diào)用者容易迷惑,當(dāng)傳入函數(shù)的參數(shù)類型為時(shí)返回值的類型究竟是還是。前面兩個(gè)是函數(shù)聲明,最后一個(gè)是函數(shù)實(shí)現(xiàn),有參數(shù)類型和返回值類型隨意搭配的意思。 Typescript 中的函數(shù) Javascrip 中函數(shù)是一等公民一、Javascript 中的兩種常見的定義函數(shù)的方式1、函數(shù)聲明 function myFunc(x,y){ return x+y } 2、函數(shù)表達(dá)式 let add...

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

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

0條評(píng)論

閱讀需要支付1元查看
<