一、let
let也是定義變量的一種聲明方式普办,但是和var又有不同,主要記住下邊4個注意點就行啦徘钥!
- 統(tǒng)一塊級作用域衔蹲,不允許重復(fù)聲明一個變量
var a = 1;
let a = 2;
console.log(a); //報錯
- 函數(shù)內(nèi)不能用let重新聲明函數(shù)的參數(shù)
function foo(a, b){
let b = 0;
return a+b;
}
foo(1,2); //報錯
- 只在let命令所在代碼塊內(nèi)有效
for(let i = 0;i< 5;i++){
console.log(i); //0,1,2,3,4
}
console.log(i); // 報錯 i is not defined
- 用let聲明變量沒有變量提升的作用
~function(){
console.log(a); // 報錯 a is not defined
let a = 1;
}();
二、const
var 和 let 是用來定義變量的呈础,而 const 是用來定義常量的舆驶。常量,就是固定不變的量而钞。
- 用const定義一次后就不能再定義沙廉。
const a = 1;
const a = 2; //報錯,不能重復(fù)定義一個常量
- 也不能進行修改:
const a = 1;
a = 3; //報錯
- 只能在同一塊級作用域中起作用
if(true){
const a = 1;
console.log(a); // 1
}
console.log(a); // 報錯
- 不能只聲明不賦值
const a; //報錯
- const也可以聲明一個對象
const obj = {
name: 'zzq',
age: 12
}
console.log(obj); // { name: 'zzq', age: 12 }
留一個供大家思考的問題笨忌,既然 const 可以定義對象蓝仲,那么試著修改對象的屬性,你發(fā)現(xiàn)了什么官疲?
最后袱结,跟大家分享一下我的個人博客地址:http://javascript404.com