var let const三者的區別

2021-10-04 07:44:20 字數 1528 閱讀 3434

1.let不存在變數提公升

使用let宣告的變數,不會像使用var那樣存在「變數提公升「」的現象。所以使用let宣告變數,必須遵循「先宣告,後使用」的原則。否則會報錯

console.log(a); //referenceerror 在申明之前 a報錯

let a = 10;

如果是var宣告的變數,則不會報錯。

console.log(a); //undefined

var a = 10;

2.let宣告的變數存在塊級作用域

let宣告的變數只在所宣告的**塊內有效。塊級作用域由 包括,if語句和for語句裡面的也屬於塊作用域。

console.log(a); //10

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

var a =;

for( var i=0; i<10; i++ )

} for( var j = 0; j3.let不允許在同一作用域內重複宣告同乙個變數

var a = 10;

let a = 10;

console.log(a);//uncaught syntaxerror:

identifier 'a' has already been declared

let b = 10;

let b = 15;

console.log(b);//uncaught syntaxerror:

identifier 'a' has already been declared

4.暫時性死區:在**塊內,使用let宣告變數之前,該變數都是不可以使用用

只要在同一作用域內存在let命令,他所宣告的變數就「繫結」在這個作用域內,不管外部有沒有宣告

let a =10;

function fn1()

fn1();//uncaught referenceerror: a is not defined

const用來宣告常量,一旦宣告,其值就不能更改

const a = 10;

a = 20;

console.log(a);//uncaught typeerror:

assignment to constant variable.

const b =

b.name = "lzx";

b={};

console.log(b.name+"---"+b.age);//輸出lzx---22

console.log(b);//uncaught typeerror:

assignment to constant variable.

var let const三者的區別

首先三者都是用來宣告變數的 作用範圍 var沒有塊級作用域,在任何位置定義的變數在外層都可以訪問到 作用域 全域性作用域 在最外層定義的變數 區域性作用域 在 中定義的變數 特點 首先如果在函式內部,就優先在函式內部查詢變數,如果沒有就繼續向外層查詢 var定義的變數可以提公升 console.lo...

var let const三者的區別

本文參考,csdn 菜鳥教程 老生常談的問題了 也看了網上各種解析,自己理解了一下 在了解 var let const三者的區別 之前,我們需要明白乙個東西 作用域 作用域分為全域性作用域,函式作用域。當然,這是es5的說法 es6新增了塊級作用域,塊作用域由 包括,if語句和 for語句裡面的也屬...

var, let, const三者之間的區別

一 作用域 js中有全域性作用域和區域性作用域兩種,var和let 相同點 都是用來宣告變數 不同點 1 var 是全域性宣告。let是區域性宣告,只在宣告的塊中有效 塊級作用域 console.log a 1 console.log b b is not defined 2 var宣告存在變數提公...