let 和 const;函数默认参数

let

let 和 var 一样, 也是是用来定义变量的。如

let a = 3

let 与 var 的区别

  • let 定义的变量的作用域是代码块,var 定义的变量的作用域是函数。
  • let 不存在变量提升。
  • 不允许在相同作用域内,重复声明同一个变量。

const

用 const 来定义常量。如

const PI = Math.PI

const 实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指针,const只能保证这个指针是固定的,至于它指向的数据结构是不是可变的,就完全不能控制了。因此,将一个对象声明为常量必须非常小心。

如果想让内容不能变,用 Object.freeze(obj)

为了让代码更健壮,尽可能的用 let 和 const 来定义变量。

函数的默认参数

function Point(x = 0, y = 0) {
  this.x = x;
  this.y = y;
}

const p = new Point();
p // { x: 0, y: 0 }

与解构赋值一起使用

function foo({x, y = 5} = {}) {
  console.log(x, y);
}

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

推荐阅读更多精彩内容