ES6中6種聲明變量的方法


 

相關閱讀:http://es6.ruanyifeng.com/#docs/let

 

相關閱讀:https://www.cnblogs.com/ksl666/p/5944718.html

 

相關閱讀:https://www.cnblogs.com/ziyunfei/p/6038213.html

 

 

ES5 只有兩種聲明變量的方法:var命令和function命令。

ES6 除了添加letconst命令,還有兩種聲明變量的方法:import命令和class命令。

所以,ES6 一共有 6 種聲明變量的方法。

(1) var命令。

var a ;  //undefined
var b = 1;
  • var定義的變量可以修改,如果不初始化會輸出undefined,不會報錯
  • var 聲明的變量在window上,用let或者const去聲明變量,這個變量不會被放到window上
  • 很多語言中都有塊級作用域,但JS沒有,它使用var聲明變量,以function來划分作用域,大括號“{}” 卻限定不了var的作用域,因此用var聲明的變量具有變量提升的效果
  • var 聲明的變量作用域是全局的或者是函數級的

(2)function命令 

function add(a) {
  var sum = a + 1;
  return sum;
}
  • 聲明了一個名為 add的新變量,並為其分配了一個函數定義
  • {}之間的內容被分配給了 add
  • 函數內部的代碼不會被執行,只是存儲在變量中以備將來使用

(3) cosnt命令

const a;     //報錯,必須初始化
const b = 1; 
  • const定義的變量不可以修改,而且必須初始化
  • 該變量是個全局變量,或者是模塊內的全局變量
  • 如果一個變量只有在聲明時才被賦值一次,永遠不會在其它的代碼行里被重新賦值,那么應該使用const,但是該變量的初始值有可能在未來會被調整(常變量)
  • 創建一個只讀常量,在不同瀏覽器上表現為不可修改;建議申明后不修改;擁有塊級作用域
  • const 代表一個值的常量索引 ,也就是說,變量名字在內存中的指針不能夠改變,但是指向這個變量的值可能 改變
  • const定義的變量不可修改,一般在require一個模塊的時候用或者定義一些全局常量
  • 可以在全局作用域或者函數內聲明常量,但是 必須初始化常量
  • 常量不能和它所在作用域內其它變量或者函數擁有相同名稱

(4) let命令

let a;  //undefined
let b = 1; 
function add(b) {
  let sum = b + 1;
  return sum;
}
let c = add(b);
  •  需要”javascript 嚴格模式”:'use strict';
  • 不存在變量提升
  • 不允許重復聲明
  • let聲明的變量作用域是在塊級域中,函數內部使用let定義后,對函數外部無影響(塊級作用域)
  • 可以在聲明變量時為變量賦值,默認值為undefined,也可以稍后在腳本中給變量賦值,在生命前無法使用(暫時死區)

(5) import命令

(6) class命令

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM