【2019-12-3】变量声明

1、作用域

let -- 块级作用域变量,它们不能在被声明之前读或者写

 但是var声明可以在包含它的函数,模块,命名空间或全局作用域内部任何位置被访问

 2、重定义

var对于重定义的变量,不会报错,但是 多个重复的 声明实际上都引用一个相同的X

但是let声明就会直接报错                                                                                                                                                                                                                                                                                                                        

 

3、const 声明

const是声明变量的另一种形式 , 与let 声明相似,但是就像它的名字所表达的,它们所赋值后不能改变。换句话说,它们拥有与let相同的作用域规则,但是不能对它们重新赋值

4、解析

 

 注意: 解析对象时,变量必须与对象中的key 名和个数都保持一致,否则会报错 , 但可以在变量名前加... , 使该变量可以接收多个参数

但只能给最后一个变量前加... ,用于接收剩下多余的对象

 属性重命名 --注意重命名后,变量名则改变,以前的变量名将不存在 

但对象中的key值对应的仍是以前的变量名

 

 默认值  -- 当传递的参数y的值是undefined时,就使用其默认值1001

 解析也可以用于函数声明

 5、展开

展开操作符与解构相反。它允许你将一个数组展开为另一个数组,或将一个对象展开为另一个对象

 展开对象还有其他一些意向不到的限制,首先,它仅包含对象自身的可枚举属性, 即:如果展开一个对象实例时,会丢失其方法

 

可以看见,clone中只包含对象的属性p,不含方法m , 所以:

 

 

原文地址:https://www.cnblogs.com/QQ-lala/p/11987218.html