那麼為什麼es6還新增了const 、let兩種宣告方式呢…
可以重複宣告;
無法限制修改,(有的常量是不需要改變的,但是var不能滿足);
沒有快級作用域;
**變數可以被重複宣告是其他語言所不接受的,(雖然我也沒用過幾種語言,但是相信我,這是真的…)
**無法限制修改,簡直非人類嘛!!!人家**中還不能有個固定不變、唯一存在的數學常量嗎
**沒有塊級作用域,這就讓人寢食難安了,我在我自己的函式裡邊宣告的變數,你再外面都拿得到,誰還睡得著
以上種種…新的宣告方式誕生了
特點1:不能重複宣告
使用var:
var a=1;
var a =2;
console.
log(a)
//2
使用var,變數重新宣告,覆蓋原有
使用let:
let a=1;
let a =2;
console.
log(a)
uncaught syntaxerror: identifier 'a' has already been declared
**瀏覽器會很親切的提示你:語法錯誤:a已經被宣告過啦
特點2:塊級作用域
使用var:
console.
log(a)
//1
上邊也說了,var不規矩,宣告了就是全域性的,想拿就拿
使用let:
console.
log(a)
//uncaught referenceerror: a is not defined
包裹在語法塊中的變數在外部都是無法訪問到的,例如函式中的,{}中的
特點3:變數可以重新賦值
這裡就不舉例了,字面意思,定義了的變數可以被重新賦值,這一點跟var沒有什麼區別。但是跟const 還是有區別
特點:不能重複宣告、 塊級作用域
與let唯一不同的就是:cosnt一旦定義就不能重新賦值了
例如:
const a =1;
a =2;
console.
log(a)
uncaught typeerror: assignment to constant variable.
瀏覽器會提示你:語法錯誤,不能賦值給常量
如上所示,可見js正在步入正統,未來越來越好…越來越強大,嘖嘖嘖!!!
ES6 變數宣告方式
var,function,let,const,import,class1.let只在所在的 塊中有效 2.以前我們需要用iife解決的問題 3.不存在變數宣告提公升 4.暫時性死區tdz 1.let只在所在的 塊中有效 2.以前我們需要用iife解決的問題 3.不存在變數宣告提公升 console....
ES6的變數宣告方式
保留了var和function。新增加了let const class和import。而且,let const class宣告的全域性變數再也不會和全域性物件的屬性掛鉤了。let 1 let只在所在的 塊中有效 for var i 0 i 10 i console.log i 10 for let ...
ES6常量宣告方式 const
今天就來聊聊es6常量的宣告方式。在es5中定義乙個常量 object.defineproperty window,pi console.log pi 5console.log pi 在es6中定義乙個常量 典型報錯 const a 5a 6 報錯,常量不可以改變 const b 報錯,常量必須賦初...