ES6 var和let和const的區別

2021-10-04 14:48:10 字數 1168 閱讀 3485

console.log(a);//10

//在執行前會先進行變數提公升,提公升到全域性作用域最頂層,實際執行**如下:

var a = undefined;

console.log(a);

foo()

function foo()

//這裡的函式是先呼叫後宣告,在執行之前會進行變數提公升和函式提公升,實際執行**如下:

function foo()

foo()

用var宣告的變數都可以用let來宣告,我們在寫**的時候要盡量使用let來宣告變數。let宣告的變數,有塊級作用域,我們寫的for() while() 等等這些都是塊級作用域。

console.log(b) //報錯,let宣告的變數存在暫時性死區

console.log(f) // 報錯,const宣告的變數也存在暫時性死區

const用於宣告乙個常量,宣告的同時必須馬上賦值,const不能再賦值

const c //syntaxerror: missing initializer in const declaration

const e = 20

e = 30 //uncaught typeerror: assignment to constant variable

const雖然是常量,不允許修改預設賦值,但如果定義的是物件,那麼是允許修改物件內部的屬性、新增屬性、刪除屬性的。但是重新給乙個資料型別是不可以的,因為記憶體位址發生了改變。

const person=

person.age = 23

console.log(person) //

person.*** = 'female'

console.log(person) //

delete person.age

console.log(person) //

person = {} // 報錯

person = // 報錯

const和let的區別:

相同:const和let都不存在變數提公升,都不能重複宣告,都存在暫時性死區

不同點:const宣告的常量不能再賦值,let宣告的變數可以重複賦值

ES6 var與let的區別

相同點 宣告變數。不同點 1 let宣告的變數只在let命令所在的 塊內有效。for var i 0 i 5 i alert a 列印出 1 alert b 報錯 b is not defined 2 let不存在變數提公升。console.log a var a 2 列印 undefind 定義了...

ES6中的let和var區別

js函式中宣告變數有多種方式 var,let,this 見如下 段 var xx function test 那麼,這三種方式有什麼區別呢?區別在於作用域不同。let 宣告的變數作用域為某個 塊。而 塊的長度可大可小。當按宣告2的方式宣告乙個變數時,該變數的作用範圍於為整個function語句。當按...

es6中 var 和 let的區別

function fn console.log a 輸出10 fn function fn console.log a 報錯,a未定義 fn function fn fn function fn fn 區別1和區別2 社群裡合起來的叫法就是 var會引起變數提公升,let不會!這個就不舉例了,自己去...