2024大二上js高级+ES6学习9.29(深/浅拷贝,正则表达式,let/const,解构赋值,箭头函数,剩余参数)

9.29.2024

1.浅拷贝和深拷贝

Es6的语法糖:用assign将obj对象浅拷贝给o对象。

把数组写在前面是因为数组也是对象

2.正则表达式

创建和检测正则表达式

正则表达式的使用直接跳过,等要用时现查现用

3.ES6

4.let关键字

块级作用域是指在一个{}l里

变量提升(Variable Hoisting)指的是无论在代码的哪个位置声明变量(使用var关键字),这些变量的声明都会被提升到函数或全局作用域的顶部。这意味着在代码执行之前,JavaScript引擎会先扫描整个作用域中的所有var声明,并初始化为undefined。

只有变量的声明被提升,而不是变量的赋值。赋值操作发生在代码执行的阶段。

Let关键字把变量num和if语句后面的{}块级作用域绑定起来,外面的同名变量不会影响{

}内的变量

全局作用域 Global

脚本作用域 Script

局部作用域 Local

块级作用域 Block

5.const关键字

如果常量的数据类型是基本数据类型,则值不能变,如果是引用数据类型(数组,对象等),就是内存地址(引用)不能变

如果使用的数据不需要变化,应该用const声明,这样效率更高,因为js引擎不需要实时监控数据的变化

6、解构赋值

数组解构赋值:

对象解构赋值:

改别名,name只是用于属性匹配,myName才是真正的变量名

7.箭头函数:可简化函数代码

()=>{}

对象是不能产生作用域的

  • 当使用 let age = 18; 时,this.age 访问的是全局作用域中的 age,由于 let 声明的变量不会挂载到全局对象上,所以结果是 undefined。
  • 当使用 var age = 19; 时,this.age 同样访问的是全局作用域中的 age,但 var 声明的变量会挂载到全局对象上,所以结果是 19。

这就是为什么,使用 let 声明的变量在 obj.say() 中打印结果是 undefined,而使用 var 声明的变量打印结果是 19。

8、剩余参数

…args表示的是剩余参数

与解构语法配合使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值