let var const之間的區別

2021-10-23 15:43:13 字數 1711 閱讀 8744

let是es6的新語法,用來區域性變數和var類似但是let只在**塊裡有效,也就是塊作用域

變數提公升是什麼意思這裡很多小夥伴會理解錯

var a = 10;

func();

function func()

很奇怪這裡為什麼是undifined這就是變數提公升

上面的**等價於

var的變數提公升就是會先把var定義的變數提到**最前進行宣告,執行到指定指定**再進行賦值

var a = 10;

func();

function func()

並且要注意{}無法限制var

console.log(a);  //a=10

console.log(b); //uncaught referenceerror: b is not defined

let 和 var區別有四點

1.let有暫時性死區(就是在宣告變數前無法使用)

let沒有變數提公升

let不能重複宣告

let有更小的作用域

宣告全域性變數

function vartest() 

console.log(a); // 2

}function lettest()

console.log(a); // 1

}

相同點:

​ const 和let都是塊級作用域

不同點:

​ let 宣告的變數可以改變 const宣告的變數不能改變(這裡注意const是不可改變是指位址不可改變)

​ const 宣告時必須賦值

cosnt a;報錯 uncaught syntaxerror: missing initializer in const declaration
const obj = 

console.log(obj);

obj.age=20;

console.log(obj);

當const賦值物件的時候是可以進行修改的

obj = {}; //報錯

arr= [''] //報錯

//

const arr = ;

arr.push(『test』)

console.log(arr);// array(1)

obj = {}; //報錯

arr= [''] //報錯

let var const的具體區別

if true console.log a a沒有被定義 這裡的乙個塊級作用域就是這if大括號內注意在定義變數的時候 無論是var,let還是const 都盡量都要先賦初始值,因為如果不賦初始值那麼undefined與任何數字進行加減乘除的時候結果都為nan 不了解變數提公升的小夥伴可以去 舉個例子...

let,var,const的使用區別

一 let宣告變數 1.let宣告的變數不會掛在window中,不會造成全域性變數的汙染 2.新增了乙個塊級作用域 以前只有函式作用域,全域性作用域 3.let是不允許重複宣告 4.let不會有宣告提前 只是人為看到的效果,實際上是有宣告提前,提前臨時性的死區中 cannot access num ...

nil Nil NULL NSNull 之間的區別

nil 是對objective c id 物件賦空值 例如 nsstring string nsstring stringwithformat test string nil 對於objective c 集合類物件 比如陣列物件,字典物件,當我們不需要再使用他們的時候,對他們release 的同時最...