ES6 基础复习

news2024/10/7 5:13:11

变量声明

变量可能具有的特性

块级作用域,变量提升(变量声明之前使用该变量),全局属性,重复声明,暂时性死区(变量声明之前的区域无法使用该变量),初始值设置,指针指向(重复赋值)

let

块级作用域,不存在变量提升,不能重复声明,不能重复赋值

const

块级作用域,不存在变量提升,不能重复声明,不能重复赋值

声明的为常量,值不可更改;常量名一般大写,且必须设置初始值

对数组和对象元素的修改,不算做对常量的修改,不会报错;修改的只是堆中的数据,不会改变栈中的指针

声明数组和对象使用 const,可以避免一些误操作

解构赋值

按照一定的模式将数组或对象中的元素提取出来,并将元素作为一个变量进行赋值

解构对象:数组、对象

// 1.数组的解构
const F4 = ['小沈阳', '刘能', '赵四', '宋小宝']
let [xiao, liu, zhao, song] = F4

// 2.对象的解构
const person = {
  name: '张三',
  age: 35,
  crime: function () {
    console.log('无法无天!')
  },
}
let { name, age, crime } = person

模板字符串

声明方式:【` `】

字符串内部可以直接换行;使用 `${变量名}` 进行变量拼接

let comedian = `<ul>
                  <li>沈腾</li>
                  <li>马丽</li>
                  <li>艾伦</li>
                  <li>魏翔</li>
                </ul>`
console.log(comedian)
// 可以直接进行变量拼接
let favorite = `沈腾`
let sentence = `${favorite}是我最喜欢的喜剧演员!`

扩展运算符

...】 扩展运算符将数组元素从数组中释放出来

const escort = ['王朝', '马汉', '张龙', '赵虎']
console.log(...escort) // '王朝' '马汉' '张龙' '赵虎'

应用

// 1.数组的合并
const kuaizi = ['王太利', '肖央']
const fenghuang = ['曾毅', '玲花']
// 字符串拼接
const singer = kuaizi.concat(fenghuang)
console.log(singer) //  ["王太利", "肖央", "曾毅", "玲花"]
// 扩展运算符合并数组
const singer1 = [...kuaizi, ...fenghuang]
console.log(singer1) //  ["王太利", "肖央", "曾毅", "玲花"]
 
// 2.数组的克隆
const general = ['关羽', '张飞', '赵云']
// 如果数组中的数据有引用类型的数据,则此处的克隆属于浅拷贝
// 如果没有,则属于深拷贝
const general1 = [...general]
console.log(general1)
 
// 3.将伪数组转换为真正的数组
const divs = document.querySelectorAll('div')
const divArr = [...divs] // 也可以使用 arguemnts
console.log(divArr)

模块化

将一个复杂的系统分解成多个独立的模块的代码组织方式

优点:防止命名冲突、代码复用、高维护性

模块化功能主要由两个命令构成:export 和 import

export

导出数据和功能

export 导出的三种方式:分别暴露,统一暴露,默认暴露

// 分别暴露
export let majorMan = '沈默'
export function wifeInfo() {
  let wife = {
    name: '殷若涵',
    job: '汇联号掌权人',
  }
  console.log(wife)
}
// 统一暴露
let master = '徐阶'
function masterInfo() {
  let age = 50,
    job = '大明次辅'
  console.log(`年龄:${age};工作:${job}`)
}

export { master, masterInfo }
// 默认暴露
export default {
  friend: ['徐渭', '姚长子'],
  outPut: function () {
    this.friend.forEach((item) => {
      console.log(item)
    })
  },
}

import

导入数据和功能

注意点:import * 和 as 关键字

<!-- module 的加载实现是 es6 语法,需要添加 type="module" -->
<script src="./father.js" type="module"></script>
// import * 一次性导入模块中的所有变量
import * as child1 from './child1.js'
console.log(child1.majorMan)
child1.wifeInfo()

// as 关键字,将输入的变量重命名
import { master, masterInfo as getInfo } from './child2.js'
console.log(master)
getInfo()

import child3 from './child3.js'
child3.outPut()

输出结果

import()

支持动态加载模块,可以用在任何地方,不仅仅是模块,非模块的脚本也可以使用

在运行时执行,也就是说,什么时候运行到该语句,就会加载指定的模块

import() 函数与加载的模块没有静态连接关系

import() 函数是同步加载

if (condition) {
  import('moduleA').then(...);
} else {
  import('moduleB').then(...);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/482953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Doris(23):Doris的函数—字符串函数

1 append_trailing_char_if_absent(VARCHAR str, VARCHAR trailing_char) 如果s字符串非空并且末尾不包含c字符,则将c字符附加到末尾。 trailing_char只包含一个字符,如果包含多个字符,将返回NULL select append_trailing_char_if_absent(a,c);select append_trailing_cha…

企业级信息系统开发讲课笔记3.4 基于Java配置类SSM框架西蒙购物网

文章目录 零、本节学习目标一、网站功能需求二、网站设计思路&#xff08;一&#xff09;设计模式&#xff08;二&#xff09;网站前台&#xff08;三&#xff09;网站后台1、用户管理2、类别管理3、商品管理4、订单管理 &#xff08;四&#xff09;购物流程图 三、网站运行效果…

PowerJob服务端部署

本文来编写一个简单的实例来说下SpringBoot整合PowerJob 文章目录 相关文档快速开始初始化项目启动服务端启动服务注册应用 相关文档 PowerJob是一个定时任务中间件&#xff08;框架&#xff09;&#xff0c;优点很多&#xff0c;PowerJob官网的对比图中可以看到PowerJob比Quar…

如何减少电路中传导噪声

从传导噪声的起源&#xff0c;可以看出可以通过减少器件噪声或周围环境的干扰来降低传导噪声对电路的影响。但在某些场合我们需要特定的器件&#xff0c;同时要求在特定场景下工作。举个例子&#xff1a;在电气隔离系统中&#xff0c;我们需要对电源进行隔离&#xff0c;而 DC/…

堆的基本操作,堆排序(C语言实现)初始化,插入,删除,销毁,排序

文章目录 前言一、堆的基本变量二、堆的基本操作2.1堆的初始化&#xff08;HeapInit&#xff09;2.2堆的销毁&#xff08;HeapDestroy&#xff09;2.3向上调整&#xff08;AdjustUp&#xff09;2.4向下调整&#xff08;AdjustDown&#xff09;2.45堆是否为空&#xff08;HeapEm…

JAVA springboot创业实践学分管理系统idea开发mysql数据库web结构计算机java编程MVC

一、源码特点 idea springboot创业实践学分管理系统是一套完善的web设计系统mysql数据库MVC模式开发&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式 开发。 JAVA springboot创业实践学分管理系统ide…

英语语法第一章之英语语法综述

英语的任何句型基本都可以翻译成 什么怎么样 &#xff0c;在这里什么就是我们常说的主语&#xff0c;而怎么样就是我们常说的谓语; 可能有些小伙伴会反问&#xff0c;不是主谓宾吗&#xff1f;别急等我慢慢讲解 在这里谓语也有很有多的不同的动作 可以独立完成的动作 句型&am…

交叉编译eigen 到hi3559

3559操作自记录 0502 ubuntu 操作日志 sudo apt-get install cmake-qt-gui whereis aarch64-himix100-linux-gcc aarch64-himix100-linux-gcc: /opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc 然后把同级的gnu放进来了&#xff0c;然后confi…

Packet Tracer - 交换机端口安全故障排除

Packet Tracer - 交换机端口安全故障排除 场景 通常使用 PC1 的员工将家里的笔记本电脑带来&#xff0c;然后断开 PC1 的连接并将笔记本电脑连接到电信插座。 在提醒此安全策略不支持在网络上使用个人设备后&#xff0c;您必须重新连接 PC1 并重新启用端口。 拓扑图 要求 …

菜鸡shader:L1基于兰伯特原理的玉石材质

这里就简单说下原理吧&#xff0c;使用unity很久之前的一个插件shaderforge&#xff0c;最近几年好像在unity资源商店已经不再维护了&#xff0c;但是有shader forge的官网&#xff1a;在这&#xff0c;碰到节点不会的时候可以查一下官方文档&#xff0c;还是很方便的&#xff…

方舟开服教程——开服服务器配置选择及租用建议指导

目前方舟开服有以下服务器模式可以选择&#xff1a; 1、自己家里的设备或物理机放家里开 2、自己购服务器设备托管到机房 3、租独立物理机 4、租虚拟机 5、租云服务器 6、淘宝面板服 配置如何选择 一般每一个地图4G可以运行&#xff08;使用内存清理压缩内存但会性能损失容易卡…

【工具使用】STM32CubeMX-Uart配置 及 数据收发功能实现

一、概述 无论是新手还是大佬&#xff0c;基于STM32单片机的开发&#xff0c;使用STM32CubeMX都是可以极大提升开发效率的&#xff0c;并且其界面化的开发&#xff0c;也大大降低了新手对STM32单片机的开发门槛。     本文主要讲述STM32芯片的Uart的配置及其相关知识。Uart…

Ubuntu使用gzip与bzip2与rar和tar压缩解压

目录 1、gzip压缩解压 2、bzip2压缩解压 3、rar压缩解压 tar归档压缩与解压包 1、gzip压缩解压 因为都是系统自带的我们不需要安装&#xff1b; ls 看一下目录当前的文件&#xff0c;创建一个 touch 123.txt 文件&#xff1b; gzip 进行压缩&#xff0c;&#xff08;“ …

【BMS】电池能量管理:充电管理

&#x1f50b; 电池包能量管理&#xff1a;充电管理 &#x1f50b; 一、通信 充电是一个过程&#xff0c;需要电池包和充电器间进行频繁的通信&#xff0c;以保证电池安全和寿命。由于通信速率要求不高&#xff0c;以及精简接口的考虑&#xff0c;通常采用GPIO自定义单线通信…

Redis高级——批处理优化

2、批处理优化 2.1、Pipeline 2.1.1、我们的客户端与redis服务器是这样交互的 单个命令的执行流程 N条命令的执行流程 redis处理指令是很快的&#xff0c;主要花费的时候在于网络传输。于是乎很容易想到将多条指令批量的传输给redis 2.1.2、MSet Redis提供了很多Mxxx这样的…

【vueCms】vueCms_xg后台管理系统(开源)

我的开源项目地址:vueCms_xg &#x1f3ae;在线体验 开发文档&#xff1a;制作中后台地址&#xff1a;vueCms_xg(域名审核中) ⚡️ 简介 一个开箱即用&#xff0c;前端基于 vite 2 vue 3 typeScript element Plus pinia vue-router 4 的PC端项目模板。 后端由nestjs构…

浅谈osgViewer::StatsHandler、osg::Stats类的用法

目录 1. 前言 2. osgViewer::StatsHandler 2.1. 功能与用法说明 2.2. 主要接口说明 3. osg::Stats 1. 前言 osg为视景器的使用和调试提供了丰富的辅助组件&#xff0c;它们主要是以osg::ViewerBase的成员变量或交互事件处理器(osgGA::GUIEventHandler)的形式出现。osgView…

Linux线程:死锁

1. 死锁 &#xff08;1&#xff09;概念 死锁&#xff08;DeadLock&#xff09;指两个或两个以上的进程或线程执行时&#xff0c;由于竞争临界资源而造成阻塞的现象&#xff1b;若不干涉&#xff0c;则无法推进下去。 &#xff08;2&#xff09;死锁的原因 ① 竞争临界资源…

商业运营级Java定位系统源代码

智慧工厂人员定位系统源码 技术架构&#xff1a;Java vue spring boot 系统概述&#xff1a; 采用UWB定位技术&#xff0c;通过在厂区内布设一定数量的定位基站&#xff0c;实时精确地定位员工、车辆、物品上微标签位置&#xff0c;零延时地将人、车、物的位置信息显示在工厂…

8年测试老鸟谈,性能测试-测试环境搭建与常见问题,这些你都知道吗?

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 一个问题&#xf…