JS中var與let const的區別

2021-09-29 04:30:19 字數 939 閱讀 6025

1. 塊級作用域

es5 中作用域有:全域性作用域、函式作用域。沒有塊作用域的概念。

es6 中新增了塊級作用域。塊作用域由 包括,if語句和 for語句裡面的也屬於塊作用域。

2.與var相比,let和const不存在變數提公升。

變數提公升是在變數宣告之前就可以使用,只是變數值為undefined

var宣告的變數在全域性範圍內有效,沒有塊的概念,可以跨塊訪問,不能跨函式訪問

let宣告的變數只在它所在的作用域內有效,不能跨塊和跨函式訪問

const宣告常量,使用時必須賦值,只能在塊級作用域訪問,而且值不能修改

2.瀏覽器預解析策略不同

瀏覽器在執行**之前會預解析,首先解析函式宣告,變數定義,解析完後再對函式變數進行運算、賦值等

無論var變數處於當前作用域的第幾行,都將var變數提公升到作用域的頭部並初始化為undefined。

let變數也被提公升到當前作用域的頭部,但不初始化。

3.使用未宣告的變數,表現不同

let先宣告後使用,不然會報錯

const先宣告後使用,不然會報錯

var則不會

4.重複宣告乙個變數時,表現不同

let不可以 重複宣告變數

const不可以 重複宣告變數

var可以重複宣告變數

js中var和let,const區別

1.var宣告的變數會掛載到window物件上,let,const 宣告的變數不會 var a 100 console.log a,window.a 100 100 let b 10 console.log b,window.b 10 undefined const c 1 console.log ...

var與let const的區別

一 var宣告的變數會掛載在window上,而let和const宣告的變數不會 var a 100 console.log a,window.a 100 100 let b 10 console.log b,window.b 10 undefined const c 1 console.log c,...

var與let const的區別

一 var宣告的變數會掛載在window上,而let和const宣告的變數不會 var a 100 console.log a,window.a 100 100 let b 10 console.log b,window.b 10 undefined const c 1 console.log c,...