ES6入門——let和const命令
let命令
ES6新增了let命令用於宣告變數。它的用處和var很相似,只不過let所宣告的變數只在let命令所在的程式碼塊內有效。看下下面程式碼:
{
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宣告的變數不會提升。看下下面的程式碼片段。
function do_someting() {
console.log( a ); //ReferenceError
let a = 2;
}
最後,let不允許在相同的作用域內,重複宣告同一個變數。
// 報錯
{
let a = 10;
var a = 1;
}
// 報錯
{
let a = 10;
let a = 1;
}
let實際上是JavaScript增加的塊級作用域。
function foo() {
let n = 6;
if (true) {
let n = 10;
}
console.log( n ); //6
}
上面程式碼有兩個程式碼塊,都宣告瞭n變數,執行後輸出的是6。這表明外層程式碼塊不受內層程式碼塊的影響。如果,改成使用var定義變數n的話,最後輸出的就是10.
另外,ES6還規定,函式本身的作用域在其所在的程式碼塊作用域之內。
function f() { console.log("I am outside"); }
(function () {
if (false) {
//重複宣告一次函式f
function f() {
console.log("I am inside");
}
}
f();
}());
上面的程式碼片段,在ES5中執行會得到“Iam inside”
, 但是在ES6中執行,則會得到“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
有一點需要我們注意的是,對常量的重複定義不會報錯,它只會默默的失敗。
const的作用域與let命令相同:即只在宣告所在的塊級作用域內有效。
if(condition) {
const MAX = 5;
}
// 常量MAX在此處不可見(或者說不可得)
此外,const常量也不可重複宣告。
var message = "Hello!";
let age = 25;
//以下兩行都會報錯
const message = "Goodbye!";
const age = 30;
相關文章
- ES6 let和const命令
- ES6標準入門之---let與const
- ES6語法——let和const
- ES6系列入門學習記錄:let和const
- es6學習之let和const
- ES6系列——let和const深入理解
- ES6中let 和 const 的新特性
- let與const命令
- ES6中let和var和const的區別
- ES6學習筆記一(let和const)筆記
- ES6學習筆記(一)————————————–let和const筆記
- ES6學習let&const
- [ES6深度解析]13:let const
- 第二章 let和const的命令
- ES6入門之let、cont
- ES5 和 ES6:let const var 區別
- 每天學習一點ES6(二)let 和 const
- ES6 let和const詳解及使用細節
- ES6let命令和塊級作用域和const命令
- ES6新增命令:let
- es6 let const與var 的區別
- ES6中var,let,const的區別
- let & const —— ES6基礎總結(二)
- ES6 - let與const,解構賦值賦值
- ES6中var/let/const的區別
- es6新特性--let,const關鍵字
- 阮一峰的ES6---let和const命令
- 理解let並 const在JavaScript ES6中(1)JavaScript
- 理解let並 const在JavaScript ES6中(2)JavaScript
- 理解let並 const在JavaScript ES6中(4)JavaScript
- ES6 let 與 const的應用介紹
- JavaScript 高階—— ES6新增語法 const(let const var區別)JavaScript
- 深入理解ES6之var,let,const區別
- 【ES6】var、let、const三者的區別
- var,let和const深入解析(一)
- var、let和const的區別
- var和let/const的區別
- ES6新特性總結之let和const--史上最全最簡潔