ES6高级语法

本文详细探讨了ES6中var、let和const在变量定义上的差异,包括作用域、提升和重定义等方面。此外,还介绍了字符串模板的便利性、数据解构的使用以及箭头函数与传统function的对比,重点讨论了箭头函数的this指向、提升、构造函数行为和arguments处理的差异。

一、var , let , const 的区别

         在原始JS中使用var进行变量的定义,var定义的变量只存在全局作用域和局部作用域,两个作用域,在ES6新增了两个定义变量的方式:let、const,那么这三个定义变量的方式有什么区别呢?下面,我们来具体分析。

1、var定义变量的特点

(1).变量提升:把变量的申明提升到作用域的最前面

        输出:undefined

        注意js中的方法function也具有变量替升

(2).var定义的变量可以反复定义,当然后面的会覆盖前面的

 

(3). 局部作用域:var在函数内部定义的变量成为局部变量,在作用在局部

(4). 全局作用域:var在函数外定义的变量成为全局变量,作用于全局

 2、Let、const 定义变量的特点

        (1).let定义的变量具有块级作用域

        (2).let和const存在暂时性死区问题

        (3).const是定义常量,let定义变量

3、let、var、const 三者的区别

1.作用域不同,新增块级作用域

2.var定义变量存在变量的默认提升功能 let与const 不存在变量的提升问题

3. var 可以重复定义 ,let与const不允许重复定义

 4.var定义的变量默认挂载到window对象上,let和const不会

               ES6 提出了两个新的声明变量的命令:letconst,声明变量的方式这么多,我们究竟怎么选择更好呢?建议使用的优先级:const   >  let   >   var 

             首先const声明常量的好处,一是阅读代码的人立刻会意识到不应该修改这个值,二是防止了无意间修改变量值所导致的错误,另外其实js编译器也对const进行了优化,可以提高代码的执行效率;

         另外let声明的变量没有预编译和变量升级的问题,先声明再使用其实更为规范,而let本身是一个块级作用域,很多时候我们在写代码的时候都希望变量在某个代码块内生效,也更为方便。

      最后说一点就是使用的场景说明:let一般应用于基本数据类型;const 一般应用于引用数据类型,也就是函数对象等.

二、字符串模板

        ES6简化了字符串的拼接方式,有了字符串模板,使用··符号${变量名}构造模版

 三、数据解构

        1.数据解构:将复杂数据内容,进行提取,解构成简单数据

         解构的语法:左右结构相同,属性和变量名称相同

        保证左侧的变量==右侧的key

 

        2.解构做交互变量

 

 四、箭头函数 和 function  对比

        ES6允许使用“箭头”(=>)定义函数,箭头函数可以说是ES6的一大亮点,使用箭头函数可以简化编码过程,使代码更加简洁。

        1.箭头函数书写方式

 

        2.箭头函数的简写

        如果箭头函数中只有一个参数,那么可以省略()

 

        如果箭头函数有且只有一行语句,并且是return语句的,可以省略 () 和 return.

 

        3.箭头函数 和 function  对比

        (1).箭头函数 和 function  的this的指向性对比

                function 中this对象的指向性不明确,随之环境的变化会发生变化

                箭头函数this用于指向生产环境 ,不跟随调用这发生变化        

         (2).箭头函数 和 function 提升对比

                 function 定义的函数,具有默认的提升

                箭头函数 不存在函数的提升

         (3).箭头函数 和 function   构造函数对比

                function 可以作为构造函数,因为this会根据new 指向空对象

                箭头函数  无法作为构造函数,因为thsi不会变动。

         (4).箭头函数 和 function   arguments 对比

                 function 函数存在arguments集合

                 箭头函数不存在arguments,  rest参数 代替arguments     

                参数集合的箭头函数括号里没有变量,则打印所有实参,如果括号里有参数,打印出改参数以外的数据   

 以上就是箭头函数 和 function  对比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值