const: 這個最簡單,只需記住是聲明的常量,定義的時候必須聲明const的具體值,且之後不允許改變const的值 var和let區別 1、由於js引擎存在預解析,會把var變數名進行提升 對於var來說是這樣執行的 var m; console.log(m); m=10; let不存在變數提升, ...
const:
這個最簡單,只需記住是聲明的常量,定義的時候必須聲明const的具體值,且之後不允許改變const的值
var和let區別
1、由於js引擎存在預解析,會把var變數名進行提升
對於var來說是這樣執行的
var m;
console.log(m);
m=10;
let不存在變數提升,會直接報錯
2、var是全局變數,可以跨塊訪問,但不能跨函數訪問
let不能跨塊訪問,也不能跨函數訪問
3、var支持修改原來屬性的值,並且最後定義的值會覆蓋原來的值
let不支持修改原來定義的值
4、var是全局變數,會自動添加全局屬性window,而let不會
5、var由於存在變數提升,在變數未賦值的時候是可以用的,不會報錯,如果直接輸出會輸出為undefine
let不存在變數提升,在沒有給變數賦值時是不能用的,一但使用會直接報錯,這種情況叫暫時性死區