• 五分钟,看懂vue项目会用到哪些ES6常用语法


    目录

    前言

    一、常量声明、变量声明

        1、let声明命令

    let规定不可重复声明变量

    let 不存在变量升级

    块级作用

    暂时性死区

    2、const命令

    二、变量解构赋值

    数组的解构赋值

    对象的解构赋值

    三、rest参数 

    四、箭头函数

    五、模板字符串

    六、模块(Module)语法


    前言

       一个前端项目开发中,都会使用到的ES6命令,但是你知道什么是ES6命令嘛?在最新的前端技术迭代下,ES6无非就是ES5的下一个版本,也是现在JavaScript轻量级语言的最新一版本的标准。说最新也新,因为这是现在的最新的一代,但是说不新也可以是不新,因为他已经在7年前就已经发布了。

       这里插一个题外话,我们知道未上分么要更新迭代一个新的命令,就那我们的ES5和ES6来说,ES6因为能很好地解决了ES5留下来的问题,解决了ES5解决不了的问题,而且在程序运行方面,比起ES5运行起来更加的方便。

    一、常量声明、变量声明

        1、let声明命令

    let命令,这个命令是ES6新增加的一个命令,它的作用就是和var一样,都是用来声明变量用的,但是let和var有所不同,我们可以逐一介绍let和var不同的特点:

    • let规定不可重复声明变量

    比如我们可以简单的看这个一个程序,

    1. let a=1;
    2. let a=2;
    3. console.log(a)

    这一个程序当执行到let A=2;的时候就会执行不下去,就会报错,报错的结果如下所示,

    50789b3846f0454c807beceee7e3370a.png

    报错解释:未捕获的Sytaxerror:标识符'a'已经声明。

    因为let命令不允许在相同的作用域下重复声明同一个变量。

    • let 不存在变量升级

    变量升级什么意思呢?往下看一个实例代码就知道了,

    1. console.log(a);
    2. let a = 1;

    这一段代码就回到console.log(a)d的时候就会报错,报错类型如下:

    a1b16134f5b540dab09997f125525d35.png

     //未捕获的引用错误:在初始化之前无法访问'a'

    解释一下为什么会出现这样的保存类型,因为外卖使用的是let命令,这个命令中在进行声明变量的时候,要经过定义这个环节,才能进行到执行代码编译这一步。

    在前面我们说了,用var进行声明的变量,是可以在没有声明前使用这个变量的,其得到的值是:undefined未定义,不会产生报错;但是使用的是let命令进行声明的,一定要遵守先定义再执行的过程,不然就会产生报错。

    • 块级作用

    我们在使用let命令的时候,所要声明的变量,这个变量只能在let命令所在的代码块里生效。这句话理解起来很简单。可以通过一个例子看就知道了。

    实例:

    1. {
    2. let a =5;
    3. console.log(a);
    4. }
    5. console.log(a);

    当代码运行到最后一条console.log(a)的时候,这个代码就会报错,报错格式类型如下:

    85b096240b274b8294451e90199ca851.png

    //a没有定义。

    补充:ES5中只有全局作用域和函数作用域两个作用域,但是ES6新增了块作用域,是的在执行的时候更加的便利。

    • 暂时性死区

    在ES6中,如果区块在使用let命令的时候,在块级中对let所声明的变量,这个块区的作用域就会变成封闭的作用域,这个作用域的作用就是只要你在声明前使用这一些变量,都会产生报错,我们就将它称之为“暂时性死区”。代码实例如下:

    1. var a = 10;
    2. if(ture)
    3. {
    4. b = 20;
    5. let b;
    6. }

    8e6888be763c486b8a39a377b353ff4f.png

     这个程序当执行到 b = 20;的时候就会报错,暂时性死区就是这个意思。

    2、const命令

     在一个vue开发项目中,const这个命令一般使用来声明一个只读的变量,这个变量声明一旦确定了,里面的值就不能发生改变了。这个const的特性和let的使用特性是一样的。

    我们还是通过例子的方式来理解,例子:

    1. //这个时候代码编译后的结果是p = 3.1415,
    1. //报错的格式类型:Uncaught TypeError: Assignment to constant variable
    2. //未捕获的类型错误:对常量变量的赋值

    045e26cb95af493d8137346c176a5d51.png

     由此实例,我们就可以知道,用const声明的值,智能读他的值,但是没有办法进行对他的值进行改变。

    二、变量解构赋值

    数组的解构赋值

    这个操作是通过从数组中提取出这个数组的值得,按照对应的位置对变量进行赋值。

    1. let [a,b,c] = [1,2,3];
    2. console.log(a);
    3. console.log(b);
    4. console.log(c);
    5. //输出的结果:1,2,3,

    这个例子左右边的数组元素都是相等的,所以代码执行的时候,该语句实现从数组[1,2,3]中以此提取数值,可以等价于
    let a = 1;let b= 2; let c = 3;

    运行结果:

    9b8b73a2910e461cbe28f28346415261.png

    对象的解构赋值

    因为我们知道,对象这个定义属性是没有次序的,所以在解构赋值的过程中,要确保变量和属性名同名,不然就取不到对象里面的值。

    例子:

    1. let {name,age,telphone} = {name:'qiubite',age:'23',tel:'1867763****'};
    2. console.log(name);
    3. console.log(age);
    4. console.log(telphone);
    5. //输出结果:qiubite;23;undefined;

    cae9a109f75a41aaba267a829809f854.png

    变量telphone在右边的对象中没有对应的属性名了,所以输出的值就是undefined未定义。

    三、rest参数 

    这个参数在语法里面又可以成为不定参数,作用是用来获取函数或解析数组赋值过程中的多余参数。

    1. var [a,b,...c] = [0,1,2,3,4];console.log(c)
    2. //输出的结果:[3,4,5]

    122acf5a2a6141a19bdad690c8fc68d0.png

    为什么呢?因为rest只能出现在变量的最后面,不能出现在其他的位置,简单地说,就是后续剩余的参数。

    四、箭头函数

    在ES6语法中,是被允许使用箭头来进行函数的定义的,这种方法更加的简介,可以把ES5中的function进行省略,一般的语法格式可以是:(参数a,参数b)=>{函数体},箭头的左边部分,我们般成为前面部分,这个部分是函数的参数,而右边(后面)这个部分函数体的代码块。

    箭头函数和别的普通函数除了在写法上面有所不一样之外,其功能上也要有所注意,以下列出
    几点后续需要注意的点;
    第一:函数体内的this对象就是定义是所在的对象,而不是使用的时候所在的对象,这个我们通过以下的代码进行理解,

    1. document.onclick = function(){
    2. setTimeout(()=>{
    3. console.log(this);
    4. },10);
    5. }

    我们将这一段函数改成箭头函数应该怎么改:

    1. document.onclick = function(){
    2. setTimeout(()=>{
    3. console.log(this);
    4. },10);
    5. }
    6. //就这样的格式进行修改就可以了。

    解释:没有改成箭头函数前的函数,在执行后,我们可以在浏览器界面任何位置进行单击,而控制台输出的是Windows对象,而不是document,因为setTimeout是通过Window对象进行调用的。

    0be75c273f8a4150b588e80c61dc1b59.png

     而改成箭头函数以后,改成箭头函数执行的代码,你在浏览器界面任何位置进行点击,控制台输出的是doucment对象,因为这个箭头函数已经是在doucment里面进行定义好了的。下图是改成箭头函数后的代码运行结果:

    3232c72d0a5d41138ecc7f20bb802b7f.png

    第二点:不能使用argument对象且不能用作构造函数
    第三点:在对象的方法中不建议使用箭头函数,因为可能会导致产生一些不可避免的bug。

    五、模板字符串

    ES6可以允许使用反引号“`”来进行创建模板字符串‘string’,这个不仅可以可以当做普通的字符串使用,还可以用作加强型的字符串。这个模板字符串有什么好处呢,它将我们读字符的拼接实现了简化,从而代替了传统的单双引号、“+”来进行字符拼接。我们还是通过我们的代码来解释我们这句话:

     运行结果:

    1c4d49b148504a9faa68c076214a613f.png

    六、模块(Module)语法

    ES6实现了模块的功能,可以将一个大的工程程序拆分成很多小的功能模块,
    实现主要使用export和import 命令,export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。
    一个模块就是一个独立的文件。如果你使用的功能模块主动输出,外部模块就可以获取该模块输出的数据,则该模块必须使用
    export命令定义对外接口,导出该数据;
    如要该模块使用其他模块中的数据,则可使用import命令导入其他模块提供的数据。
    导出与导入写法,我们可以归纳为:

    在定义变量时直接导出,就是在定义变量的前面加上 export命令。
    import{变量1,变量2,...} from模块标识符2)

    使用一条export命令一次输出多个已定义好的变量,语法:
    export{变量1,变量2,...}
    导入时使用命令:
    import{变量1,变量2,...,from模块标识符

    上述两种方法在导入时需要知道导出的变量名或函数名,否则无法导入,而用exportdefault 默认导出。
    export default命令可直接输出一个对象,导入时用一个对象来接收即可。导入时使用命令:
    import对象名from模块标识符。
    注意,每一个功能模块,只允许使用一次export default命令。

  • 相关阅读:
    软件设计师_数据库——关系代数
    『Java 语法基础』面向对象有哪些特性
    python的str.find()用法及实例
    python 2018全国自学考试第5章 第21题 成功!!!左右金字塔建模加平方结果
    互联网轻量级框架整合之MyBatis动态SQL
    【PHP框架 | Laravel8 系列5】 - 视图与CSRF保护
    Redis 常见数据类型(对象类型)和应用案列
    亚马逊云科技Build On2022技能提升计划第二季——揭秘出海爆款新物种背后的黑科技
    多商户商城系统功能拆解20讲-平台端分销概况
    PHP+MySQL人才招聘小程序系统源码 带完整前端+后端搭建教程
  • 原文地址:https://blog.csdn.net/Lushengshi/article/details/126381059