es6和es5變數宣告和作用域的不同

antzone發表於2017-03-13

下面通過程式碼例項介紹一下es6和es5變數宣告和作用域的不同。

在ES5中,宣告變數可以使用var也可以不適用var(非常不推薦)。

不適用var宣告的變數預設作用域是全域性作用域(嚴格模式下,會報錯)。

嚴格模式可以參閱javascript嚴格模式特性簡單介紹一章節。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
function ant() {
  var num = 0;
  count = 5;
}
ant();
console.log(num);
console.log(count);

上面的程式碼中,num的作用域在函式內,所以外部無法訪問它;不使用var宣告的變數的作用域是全域性的。

在es6中新增了let和const來宣告變數和常量(可以認為是一種特殊的變數)

關於let和const的用法這裡不做介紹,具體可以參閱以下兩篇文章:

(1).let可以參閱ES2015 let命令一章節。

(2).const可以參閱ES2015 const一章節。

看完這兩篇文章,也就基本清楚和var的區別了。

相關文章