13_前端工程化_ES6

1.前端工程化概念

前端工程化是使用软件工程的方法单独解决前端的开发流程中模块化、组件化、规范化、自动化的问题,其主要目的为了提高效率和降低成本。

在这里插入图片描述

前后端分离(前端代码工程化独立出来形成一个单独的app)

1.开发分离

2.部署分离

3.服务器分离

本次技术栈

  • ECMAScript6 VUE3中大量使用ES6语法
  • Nodejs 前端项目运行环境
  • npm 依赖下载工具
  • vite 前端项目构建工具
  • VUE3 优秀的渐进式前端框架
  • router 通过路由实现页面切换
  • pinia 通过状态管理实现组件数据传递
  • axios ajax异步请求封装技术实现前后端数据交互
  • Element-plus 可以提供丰富的快速构建网页的组件仓库

2.ECMA6Script

  • 由于VUE3中大量使用了ES6的语法,所以ES6成为了学习VUE3的门槛之一

2.1es6的变量和模板字符串

  • ES6 新增了letconst,用来声明变量,使用的细节上也存在诸多差异

  • let 和var的差别

1、let 不能重复声明

2、let有块级作用域,非函数的花括号遇见let会有块级作用域,也就是只能在花括号里面访问。

3、let不会预解析进行变量提升

4、let 定义的全局变量不会作为window的属性

5、let在es6中推荐优先使用
  • let更像Java中声明变量的感觉,var可能更加随意了
        // 1.let生命变量不能重复声明
        let c =1;
        c = 100
        // let c = 99;

        // 2.let有作用域,只能在花括号访问
        {
            let i = 100
        }
        // console.log(i)      //ReferenceError: i is not defined


        // 3.let不会预解析进行变量提升
        console.log(m)
        var m=99

        // console.log(p)
        // let p=98
        // ReferenceError: Cannot access 'p' before initialization
        // at 01let和const.html:27:21

        // 4.let定义的变量不会作为全局变量 var可以
        console.log(window.a)

        // 5.const就是不可修改的let        有点像final修饰的变量一样,const修饰的量必须赋值
        // const b =1
        // b=2

        // 6.模板字符串对字符串进行处理 ``放入标签即可,避免了使用单双引号的难点        拼接和linux一样
        let city = "henan"
        let info = `    <ul>
                            <li></li>
                            <li></li>
                            <li>${city}</li>
                            <li></li>
                            <li></li>
                        </ul>`

2.2 es6的解构表达式

  • 解构表达式在数组上的使用在这里插入图片描述

  • 解构表达式进行 对象取值操作 并赋值给let变量

在这里插入图片描述

  • 解构表达式抓形参

    在这里插入图片描述

小结:
解构表达式目的是抓取对象,数组,形参列表的值
支持批量抓取
	//2. 使用特点 箭头函数this关键字
    // 在 JavaScript 中,this 关键字通常用来引用函数所在的对象,
    // 或者在函数本身作为构造函数时,来引用新对象的实例。
    // 但是在箭头函数中,this 的含义与常规函数定义中的含义不同,
    // 并且是由箭头函数定义时的上下文来决定的,而不是由函数调用时的上下文来决定的。
    // 箭头函数没有自己的this,this指向的是外层上下文环境的this

2.3 es6箭头函数

就是lambda表达式

  • 箭头函数声明
    let fun2 =()=>{}

    let fun3 = (x)=>{return x+1}
  • 2.箭头函数的各种省略
{
           --  小括号可省  参数仅1个
           --  花括号可省  代码仅一行
           --  return可省  代码仅一行且带return
}
  • 3.箭头函数的this

    在这里插入图片描述

  • 意义

普通函数的this表示调用者

箭头函数this表示外层的this

2.4 rest和spread

rest参数,形参上使用和java可变参数几乎一样

    <script>
            // 1 参数列表中多个普通参数  普通函数和箭头函数中都支持
            let fun1 = (a,b,c,d=100)=> console.log([a,b,c,d])
            fun1()
            // 2 ...作为参数列表,称之为rest参数 普通函数和箭头函数中都支持 ,因为箭头函数中无法使用arguments,rest是一种解决方案
            // let fun2 = (...args)=>{console.args}
            // fun2(1,2,3,4,5)
            // rest参数在一个参数列表中的最后一个只,这也就无形之中要求一个参数列表中只能有一个rest参数
            let arr  =[1,2,3]
            // let info = ...arr    这样写的是错的  ...arr  表示1,2,3
            let fun3 = (a,b,c)=>{
                console.log(a,b,c)
            }
            fun3(...arr)            //这样就可以将数组展开 放入方法形参供其使用

            // 3.spread可以快速合并数组
            let a =[1,2,3]      //总之一个道理...arr表示去括号的操作
            let b =[1,2,3]
            let c =[1,2,3]

            console.log(...a,...b,...c)//1 2 3 1 2 3 1 2 3

            //js的对象是{}包裹,spread同样适用

    </script>

Appendix

普通函数的this表示调用者

箭头函数this表示外层的this

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

012-Linux逻辑卷管理(LVM)

前言 安装 Linux 操作系统时遇到的⼀个常见的难以决定的问题就是如何正确地评估各分区大小&#xff0c;以分配合适的硬盘空间; 基本的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小。随着 Linux的逻辑卷管理功能的出现&#xff0c;这些问题都迎刃而解&#xff0c;用户…

如何计算 GPT 的 Tokens 数量?

基本介绍 随着人工智能大模型技术的迅速发展&#xff0c;一种创新的计费模式正在逐渐普及&#xff0c;即以“令牌”&#xff08;Token&#xff09;作为衡量使用成本的单位。那么&#xff0c;究竟什么是Token呢&#xff1f; Token 是一种将自然语言文本转化为计算机可以理解的…

论文阅读:All-In-One Image Restoration for Unknown Corruption

发表时间&#xff1a;2022 cvpr 论文地址&#xff1a;https://openaccess.thecvf.com/content/CVPR2022/papers/Li_All-in-One_Image_Restoration_for_Unknown_Corruption_CVPR_2022_paper.pdf 项目地址&#xff1a;https://github.com/XLearning-SCU/2022-CVPR-AirNet 在本文…

Word Split Line

Word Split Line 分割线 https://download.csdn.net/download/spencer_tseng/89413772

将字符串str1复制为字符串str2

定义两个字符数组str1和str2&#xff0c;再设两个指针变量p1和p2&#xff0c;分别指向两个字符数组中的有关字符&#xff0c;通过改变指针变量的值使它们指向字符串中的不同的字符&#xff0c;以实现字符的复制。编写程序&#xff1a; 运行程序&#xff1a; 程序分析&#xff1…

MySQL 与 PostgreSQL 关键对比二(SQL语法)

目录 1 详细示例 1.1自动增量列 1.2 字符串连接 1.3 JSON 支持 2 总结 MySQL 和 PostgreSQL 是两种流行的开源关系数据库管理系统&#xff08;RDBMS&#xff09;。尽管它们在许多方面相似&#xff0c;但在 SQL 语法和功能上存在一些显著差异。 以下SQL语句的执行如果需要开…

向量数据库是什么?

向量数据库是什么&#xff1f; 随着人工智能和机器学习技术的迅猛发展&#xff0c;向量数据库作为一种新型数据库引起了广泛关注。向量数据库专门用于存储和查询高维向量数据&#xff0c;是在大规模数据检索和相似性搜索领域的重要工具。 向量数据库的定义 向量数据库是一种…

SLAM小题目

1、最小二乘题目&#xff1a; 假设有三个WIFI热点&#xff0c;位置分别在(x1,y1), (x2,y2), (x3,y3), 移动端测量到每一个热点的距离L1,L2和L3&#xff0c;要求解移动端的位置. #include <iostream> #include <vector> #include <cmath> class Point { pub…

ssm601基于ssm框架的校园闲置物品交易平台+jsp【已测试】

前言&#xff1a;&#x1f469;‍&#x1f4bb; 计算机行业的同仁们&#xff0c;大家好&#xff01;作为专注于Java领域多年的开发者&#xff0c;我非常理解实践案例的重要性。以下是一些我认为有助于提升你们技能的资源&#xff1a; &#x1f469;‍&#x1f4bb; SpringBoot…

抓住时机的核心:坚持学习准备着

在这个快节奏的时代&#xff0c;时间对于每个人来说都是宝贵的。能否在合适的时间做正确的事情&#xff0c;往往决定了我们成功的概率。但同时&#xff0c;我们也要认识到&#xff0c;逆风翻盘虽少&#xff0c;却并非不可能。在这个过程中&#xff0c;投资自己&#xff0c;投资…

28-LINUX--I/O复用-epoll

一.epoll概述 epoll 是 Linux 特有的 I/O 复用函数。它在实现和使用上与 select、poll 有很大差异。首 先&#xff0c;epoll 使用一组函数来完成任务&#xff0c;而不是单个函数。其次&#xff0c;epoll 把用户关心的文件描述 符上的事件放在内核里的一个事件表中。从而无需像…

计算机网络--应用层

计算机网络–计算机网络概念 计算机网络–物理层 计算机网络–数据链路层 计算机网络–网络层 计算机网络–传输层 计算机网络–应用层 1. 概述 因为不同的网络应用之间需要有一个确定的通信规则。 1.1 两种常用的网络应用模型 1.1.1 客户/服务器模型&#xff08;Client/Se…

[office] excel工作表数据分级显示 #其他#笔记

excel工作表数据分级显示 如下图1所示的工作表数据&#xff0c;我们按东区、西区、南区、北区来建立分级显示。 图1 这里先利用“创建组”命令建立分级显示。选取单元格区域A3:E5&#xff0c;单击功能区“数据”选项卡“分级显示”组中的“创建组——创建组…”命令&#xff…

基于小波多分辨分析的一维时间序列信号趋势检测与去除(MATLAB R2018a)

小波最开始是数学上提出的概念&#xff0c;并且在纯数学的王国里存在了一个世纪之久。最开始是为了弥补傅里叶分析的缺陷&#xff0c;即傅里叶级数发散的问题&#xff0c;并寻找出能够代替傅里叶分析的方法。从最早的一些艰难的探索开始直到慢慢发展成为一套完整系统的小波分析…

Git配置 安装及使用

团队开发的神 找工作必备 环境变量 配置好环境后 打开终端环境 winr cmd 我习惯在桌面打开&#xff0c;然后进入相应的文件夹 &#xff08;文件夹结构&#xff09; &#xff08;个人感觉能用cmd不用git&#xff0c;cmd更好用一些&#xff09; 进入对应的文件夹 填写自己对…

Web3设计风格和APP设计风格

Web3设计风格和传统APP设计风格在视觉和交互设计上有一些显著的区别。这些差异主要源于Web3技术和理念的独特性&#xff0c;以及它们在用户体验和界面设计中的具体应用。以下是Web3设计风格与传统APP设计风格的主要区别。北京木奇移动技术有限公司&#xff0c;专业的软件外包开…

Elasticsearch最佳生产实践整理,推荐收藏

前言 Elasticsearch是一个底层基于Lucene的全文搜索和分析引擎&#xff0c;支持近乎实时地存储、搜索和分析大量数据的能力&#xff0c;最常用于网站搜索、日志搜索、数据分析等场景。 本文主要针对日常工作中Elasticsearch使用的一些基础概念、使用规范、注意事项、常见优化…

GPU风扇不旋转:为什么会发生这种情况以及如何修复

GPU在处理数百万像素时往往会发热,因此冷却风扇静音可能会令人担忧,这是可以理解的!如果你注意到你的GPU风扇没有旋转,下面是如何评估是否存在真正的问题,以及如何解决问题。 风扇停止旋转可能是一个功能,而不是一个Bug 如果GPU没有用于密集任务或没有达到高温,则可以…

1V1音视频实时互动直播系统

李超老师的项目 先肯定分为两个两个端&#xff0c;一个是服务器端一个是客户端。客户端用于UI界面的显示&#xff0c;服务器端用于处理客户端发来的消息。 我们先搭建stun和turn服务器 首先介绍一下什么是stun协议&#xff0c; 它是用来干什么的&#xff1f; stun协议存在…

构建第一个ArkTS应用之@卡片使用动效能力

ArkTS卡片开放了使用动画效果的能力&#xff0c;支持显式动画、属性动画、组件内转场能力。需要注意的是&#xff0c;ArkTS卡片使用动画效果时具有以下限制&#xff1a; 表1 动效参数限制 名称 参数说明 限制描述 duration 动画播放时长 限制最长的动效播放时长为1秒&…