1. 程式人生 > >javascript中的let 、const 和 var 的區別

javascript中的let 、const 和 var 的區別

在JavaScript中有三種宣告變數的方式:var、let、const。下文給大家介紹js中三種定義變數的方式const, var, let的區別

1.let和const中不存在變數提升,var中存在變數提升

console.log("a----" + a);
var a = "a";

console.log("b----" + b);
let b = "b";

console.log("c----" + c);
const c = "c";

var a 輸出的結果是        

let b  輸出的結果是      

const c 輸出的結果是   

因為b  和  c 不存在變數提升  程式碼從上往下執行  找不到b 和  c  所以報錯  變成defined

2. let 和  const 會形成塊級作用域(就是 {} )   var  除了函式 裡面的  變數   否則不會形成塊級作用域

function fn() {
     var a = 0;
     console.log(a);   
}
fn();
console.log(a);  

var  a   在函式裡面輸出的結果是

如果在if  中   就可以輸出值

 if(true){
        var b = 0;
    }
    console.log(b);

結果會輸出

我們再來看看   let  和  const  

function fn() {
  let a = 0;
  console.log(a);   
}
fn();
console.log(a);  

let a 輸出的結果是

const和let輸出的結果是一致的我就不寫了  

再來看看  if  中的  輸出的值吧

 if(true){
        let b = 0;
    }
    console.log(b);

       在if中的  let a 中我們看到的是 

3.let  const  不能再次賦值   而 var  可以再次賦值

    var a = 10;
    var a = 11;
    console.log(a);

var  變數可以再次賦值

    var a = 10;
    var a = 11;
    console.log(a);

    //輸出的結果是11

我們再來看看let  和  const

let b = 11;
let b = 11;
console.log(b);

輸出的結果是

系統報錯:告訴我們  b 變數已經聲明瞭

我們最後看看const

const c = 12;
const c = 12;
console.log(c);

會報和let一樣的錯   所以結果是一樣的

以上就是let  const  和  var的區別

let  和 const  非常相似但是我們來看看它們之間唯一的區別

let a;
console.log(a);

會輸出

再來看看const

const b;
console.log(b);

const  輸出 

系統會報錯:在Const宣告中缺少初始化器

唯一的區別就是let宣告變數不賦值不會報錯   而const宣告變數不賦值會報錯

上面就是我個人的看法,如果有其他意見的望君留言

想看更多請點選我的部落格