当前位置: 首页 > article >正文

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

与解构语法配合使用


http://www.kler.cn/news/330859.html

相关文章:

  • 并集运算的线段树维护方式
  • c++就业磁盘链式b树与b+树
  • 3. 将GitHub上的开源项目导入(clone)到本地pycharm上——深度学习·科研实践·从0到1
  • 滚雪球学MySQL[7.1讲]:安全管理
  • 【笔记】数据结构12
  • Dubbo和Http的调用有什么区别
  • 【Docker】docker的存储
  • el-table动态表头
  • 828华为云征文|部署音乐流媒体服务器 mStream
  • React返回上一个页面,会重新挂载吗
  • 【AI知识点】非独立同分布(non-iid, non-independent and identically distributed)
  • AR技术在电商行业的应用及优势有哪些?
  • 解决银河麒麟V10系统bash执行提示:无法执行:权限不够的问题
  • 远程过程调用RPC知识科普
  • 【Linux】进程管理:状态与优先级调度的深度分析
  • 车辆种类分类识别数据集,可以识别7种汽车类型,已经按照7:2:1比 例划分数据集,训练集1488张、验证集507张,测试集31张, 共计2026张。
  • 【Spring Security】基于SpringBoot3.3.4版本整合JWT的使用教程
  • HBase批量写入优化
  • 安宝特分享 | AR技术重塑工业:数字孪生与沉浸式培训的创新应用
  • Android SystemUI组件(08)睡眠灭屏 锁屏处理流程