ES6之let和const

一、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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容