通俗易懂TypeScript系列二:聲明和解構(gòu)(上)

比利時(shí)哈莉·哈雷森林的藍(lán)鈴花【摘自微軟Bing】

*我想了想這個(gè)系列我打算分上下兩集來講,避免因?yàn)樘L看起來太累,盡量做到簡短又能讓大家通熟易懂,這是我的初心,有什么好建議希望大家提出

1、let聲明

一直以來 JavaScript 都是通過 var 關(guān)鍵字定義變量,let和const 是ES6新增兩個(gè)變量聲明方式

(1).現(xiàn)在我們使用var聲明變量看看會(huì)發(fā)生什么?

代碼一:

var a = 124

var a = 234;

console.log(a);//輸出234

結(jié)論:var多次聲明一個(gè)變量并不會(huì)報(bào)錯(cuò),后面一個(gè)變量,會(huì)覆蓋前面聲明的變量

代碼二:

for (var i = 0; i < 5; i++) {

setTimeout(function () {

console.log(i);//連續(xù)輸出5

? ? })

}

結(jié)論:用var聲明的變量i,每一次循環(huán),新的i值都會(huì)覆蓋舊值,所以連續(xù)輸出5

代碼三:

console.log(a);//輸出123

var a = 123 ;

結(jié)論:用var聲明的變量,可以先使用后聲明,但在嚴(yán)格模式下 會(huì)報(bào)錯(cuò) undefined

代碼四:

(function () {

if (true) {

var a = 100; //在if塊內(nèi)部聲明的變量a,在塊外面是可以使用的

console.log(a); //輸出100

}

console.log(a); //輸出100

})();

結(jié)論:用var定義的變量作用域在函數(shù)中都有效,不存在塊級(jí)作用域

(2).現(xiàn)在我們用let變量聲明看看會(huì)發(fā)生什么?

代碼一:

let a = 124

let a = 234;

console.log(a);//編譯器無法編譯,直接報(bào)錯(cuò)

結(jié)論:let多次聲明一個(gè)變量編譯不會(huì)通過,直接報(bào)錯(cuò)

代碼二:

for (let i = 0; i < 5; i++) {

setTimeout(function () {

console.log(i);//會(huì)逐漸輸出0-4

? ?})

}

結(jié)論:用let聲明的變量i,在每次循環(huán)都會(huì)分配獨(dú)立的變量,所以不會(huì)被覆蓋

代碼三:

console.log(a);//報(bào)錯(cuò)

var a = 123 ;

結(jié)論:編譯不通過,let聲明的變量不存在變量提升,一定聲明后才能使用;

代碼四:

(function () {

if (true) {

let a = 100;

console.log(a); //輸出100

}

console.log(a); //Uncaught ReferenceError: a is not defined

})();

結(jié)論:用let聲明的變量有塊級(jí)作用域,當(dāng)在if外面打印a時(shí)會(huì)報(bào)引入錯(cuò)誤,a沒有定義

2、const聲明

const也是聲明變量的一種方式,一般用于聲明一個(gè)常量,被賦值后不能夠改變const 與 let 不同點(diǎn)在于:

(1). const 如果聲明的變量如果是簡單的值,則不能改變變量的值,修改會(huì)報(bào)錯(cuò)

const A=123;

A =234;

console.log(A);//報(bào)錯(cuò)

(2). const 如果聲明的是復(fù)合類型的變量,則只保證變量地址不變,值可以變

const obj = {a: 123};

obj.a = 234;

console.log(obj.a); // 輸出:234

foo = {a: 1111}; // 報(bào)錯(cuò)

個(gè)人學(xué)習(xí)心得,大神路過 ,不喜勿噴?? ,如果你覺得不錯(cuò),歡迎點(diǎn)贊,訂閱,分享出去給需要的人,筆者將非常感謝

<完>

如果你是喜歡看書的朋友,不妨點(diǎn)擊【有驚喜】這是我在亞馬遜買的電子書,都非常珍貴。希望你能喜歡

作者:小處成就大事

簡介:一個(gè)喜歡分享和學(xué)習(xí)的前端開發(fā)程序猿,平時(shí)喜歡看看書,游泳,爬山,戶外騎行等,期待與志同道合的你成為朋友,一起交流、一起進(jìn)步。

初衷:閑時(shí)喜歡寫一些文章分享,記錄豐富自己??赡軟]有別人寫得好,但是我寫的每一篇都非常用心和投入。真心希望來到這里對(duì)你有所收獲,我將非常開心很欣慰。

博客小處成就大事_新浪博客

如果有志同道合的朋友不妨加微信一起交流和學(xué)習(xí),期待你的到來

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • let 命令 塊級(jí)作用域 const 命令 頂層對(duì)象的屬性 global 對(duì)象 let 命令 基本用法 ES6 新...
    嘉奇呦_nice閱讀 1,692評(píng)論 0 2
  • let 和 const 命令 let 命令 塊級(jí)作用域 const 命令 頂層對(duì)象的屬性 gl...
    安小明閱讀 1,036評(píng)論 0 0
  • let 命令 塊級(jí)作用域 const 命令 頂層對(duì)象的屬性 global 對(duì)象 let 命令 基本用法 ES6 新...
    卞卞村長L閱讀 680評(píng)論 0 0
  • 本文屬個(gè)人筆記,不做詳解,僅供參考! let命令 基本用法 ES6 新增了let命令,用來聲明變量。它的用法類似于...
    R_yan閱讀 29,293評(píng)論 6 18
  • @白開水yolo 在喪尸沖向車廂的最后關(guān)頭,石宇把成慶和藍(lán)胖子關(guān)在了門外,幷在胖子質(zhì)問他時(shí)以“不只是你一個(gè)人處于危...
    遙智閱讀 487評(píng)論 6 3

友情鏈接更多精彩內(nèi)容