欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

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

最编程 2024-10-02 18:48:59
...

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表示的是剩余参数

与解构语法配合使用