日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

ES6新增關(guān)鍵字let和const介紹_基礎(chǔ)知識

作者:.NET開發(fā)菜鳥 ? 更新時(shí)間: 2022-05-23 編程語言

ES6新增加了兩個(gè)重要的JavaScript關(guān)鍵字:let和const

一、let關(guān)鍵字

let聲明的變量只在let命令所在的代碼塊內(nèi)有效。

1、基本語法

let a='123'

2、let和var的區(qū)別

?var也是用來聲明變量,let和var有什么區(qū)別呢?區(qū)別主要是以下三點(diǎn):

2.1、同一作用域內(nèi)let不能重復(fù)定義同一個(gè)名稱,var可以重復(fù)定義

看下面的例子:

// 同一個(gè)作用域內(nèi)let不能重復(fù)定義同一個(gè)名稱
let a='123';let a='456'; // 錯(cuò)誤
// var可以重復(fù)定義
var a=10;
var a=20;

2.2、兩者作用域不同

let屬于塊級作用域,只在當(dāng)前塊內(nèi)有效。

var屬于全局作用域。

看下面的示例:




        
        ES6
        
        

效果:

打印str1的時(shí)候會報(bào)錯(cuò),因?yàn)槌隽藄tr1的作用域。

2.3、不存在變量提升

var聲明的變量存在變量提升,即可以在變量聲明之前就使用該變量,值為undefined;而let不存在變量提升,必須先聲明變量才能使用。看下面的例子:




        
        ES6
        
        

?效果:

二、const

const與let的相同點(diǎn):都是塊級作用域。

不同點(diǎn):const聲明的是一個(gè)只讀的常量,聲明之后就不允許改變。意味著,聲明的同時(shí)必須初始化。看下面的例子:

const pi='3.1415926';
pi='3.1415927'

查看控制臺結(jié)果:

聲明的同時(shí)必須初始化,看示例:




        
        ES6
        
        

控制臺結(jié)果:

注意:

const 如何做到變量在聲明初始化之后不允許改變的?其實(shí) const 其實(shí)保證的不是變量的值不變,而是保證變量指向的內(nèi)存地址所保存的數(shù)據(jù)不允許改動(dòng)。此時(shí),你可能已經(jīng)想到,簡單類型和復(fù)合類型保存值的方式是不同的。是的,對于簡單類型(數(shù)值 number、字符串 string 、布爾值 boolean),值就保存在變量指向的那個(gè)內(nèi)存地址,因此 const 聲明的簡單類型變量等同于常量。而復(fù)雜類型(對象 object,數(shù)組 array,函數(shù) function),變量指向的內(nèi)存地址其實(shí)是保存了一個(gè)指向?qū)嶋H數(shù)據(jù)的指針,所以 const 只能保證指針是固定的,至于指針指向的數(shù)據(jù)結(jié)構(gòu)變不變就無法控制了,所以使用 const 聲明復(fù)雜類型對象時(shí)要慎重。




        
        ES6
        
        

控制臺結(jié)果:

原文鏈接:https://www.cnblogs.com/dotnet261010/p/10805516.html

欄目分類
最近更新