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不會!這個就不舉例了,自己去...