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可能更加随意了

html 复制代码
        // 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变量

  • 解构表达式抓形参

html 复制代码
小结:
解构表达式目的是抓取对象,数组,形参列表的值
支持批量抓取
	//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可变参数几乎一样

html 复制代码
    <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

相关推荐
恋猫de小郭32 分钟前
Flutter Zero 是什么?它的出现有什么意义?为什么你需要了解下?
android·前端·flutter
崔庆才丨静觅7 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60618 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了8 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅8 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅8 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅9 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment9 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅9 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊9 小时前
jwt介绍
前端