一、let
let也是定义变量的一种声明方式,但是和var又有不同,主要记住下边4个注意点就行啦!
- 统一块级作用域,不允许重复声明一个变量
var a = 1;
let a = 2;
console.log(a); //报错
- 函数内不能用let重新声明函数的参数
function foo(a, b){
let b = 0;
return a+b;
}
foo(1,2); //报错
- 只在let命令所在代码块内有效
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; //报错,不能重复定义一个常量
- 也不能进行修改:
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 可以定义对象,那么试着修改对象的属性,你发现了什么?
最后,跟大家分享一下我的个人博客地址:http://javascript404.com