ES6中l(wèi)et和const命令有什么用

這篇文章將為大家詳細(xì)講解有關(guān)ES6中l(wèi)et和const命令有什么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

目前創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、寧波網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

前言

在javascript中,我們都知道使用var來聲明變量。javascript是函數(shù)級(jí)作用域,函數(shù)內(nèi)可以訪問函數(shù)外的變量,函數(shù)外不能訪問函數(shù)內(nèi)的變量。

函數(shù)級(jí)作用域會(huì)導(dǎo)致一些問題就是某些代碼塊內(nèi)的變量會(huì)在全局范圍內(nèi)有效,這我們是非常熟悉的:

for (var i = 0; i < 10; i++) {
 console.log(i); // 0,1,2...,9
}
console.log(i); //10

if(true){
 var s = 20;
}
console.log(s); //20

在es6中增加了let(變量)和const(常量)來聲明變量,使用的是塊級(jí)作用域,變量聲明只在代碼塊內(nèi)有效,下面來看看詳細(xì)的介紹:

let命令

ES6新增了let命令用于聲明變量。它的用處和var很相似,只不過let所聲明的變量只在let命令所在的代碼塊內(nèi)有效。

看下下面代碼:

 {
  let a = 10;
  var b = 9;
 }
 alert( a ); // ReferenceError: a is not defined
 alert( b ); //9

再看看下面代碼:

var a = [];
 for(var i = 0; i < 10; i++) {
  var c = i;
  a[i] = function() {
   console.log( c );
  };
 }
 a[6](); //9

而如果使用let聲明的話,最后輸出的值是“6”。代碼如下:

var a = [];
for (var i = 0; i < 10; i++) {
  let c = i;
  a[i] = function() {
   console.log( c );
  };
}
a[6](); //6

此外,let聲明的變量不會(huì)提升??聪孪旅娴拇a片段。

 function do_someting() {
  console.log( a ); //ReferenceError
  let a = 2;
 }

最后,let不允許在相同的作用域內(nèi),重復(fù)聲明同一個(gè)變量。

 // 報(bào)錯(cuò)
 {
  let a = 10;
  var a = 1;
 }

 // 報(bào)錯(cuò)
 {
  let a = 10;
  let a = 1;
 }

let實(shí)際上是JavaScript增加的塊級(jí)作用域。

 function foo() {
  let n = 6; 
  if (true) {
   let n = 10;
  }
  console.log( n ); //6
 }

上面代碼有兩個(gè)代碼塊,都聲明了n變量,運(yùn)行后輸出的是6。這表明外層代碼塊不受內(nèi)層代碼塊的影響。如果,改成使用var定義變量n的話,最后輸出的就是10.

另外,ES6還規(guī)定,函數(shù)本身的作用域在其所在的代碼塊作用域之內(nèi)。

 function f() { console.log("I am outside"); }
 (function () {
  if (false) {
   //重復(fù)聲明一次函數(shù)f
   function f() {
    console.log("I am inside");
   }
  }

  f();
 }());

上面的代碼片段,在ES5中運(yùn)行會(huì)得到“Iam inside”, 但是在ES6中運(yùn)行,則會(huì)得到“Iam outside”。

const命令

const是用來聲明常量的。一旦聲明,其值就不能改變。

 const PI = 3.1415;
 console.log( PI ); //PI

 PI = 3;
 console.log( PI ); //3.1415

 const PI = 3.1;
 console.log( PI ); //3.1415

有一點(diǎn)需要我們注意的是,對(duì)常量的重復(fù)定義不會(huì)報(bào)錯(cuò),它只會(huì)默默的失敗。

const的作用域與let命令相同:即只在聲明所在的塊級(jí)作用域內(nèi)有效。

 if(condition) {
  const MAX = 5;
 }

 // 常量MAX在此處不可見(或者說不可得)

此外,const常量也不可重復(fù)聲明。

 var message = "Hello!";
 let age = 25;

 //以下兩行都會(huì)報(bào)錯(cuò)
 const message = "Goodbye!";
 const age = 30;

關(guān)于“ES6中l(wèi)et和const命令有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)站名稱:ES6中l(wèi)et和const命令有什么用
標(biāo)題URL:http://muchs.cn/article32/pgoisc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、手機(jī)網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)公司、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司