变量、模板字符串、解构赋值

let

用来声明变量的,不可以重复声明,可以重复赋值。

const

用来声明常量的,常量称为只读数据。

一旦声明,必须赋值且值不可再改。使用const声明的常量不可以重复声明更不可以重复赋值。

var

用来声明变量的,既可以重复赋值,又可以重复的声明。 

相同点

都是声明的关键字

不同点

  1. 变量提升只有var
  2. 作用域:var 声明的变量存在于window顶级对象中,let和const的变量存在于独立的块级作用域中。
  3. let可以重复赋值,const不可以重复赋值

ES6的经典题:暂时性死区

原因就是let和const的块作用域的特性。 当let或const放在{}里,这个{}就会变成块级作用域,被let或const声明的变量锁死,故叫暂时性死区

在ES5时代,作用域只有全局的window和局部的函数作用域,受条件限制,for循环,if和switch里的变量会污染全局,现在有了let和const之后,凡是有{}的代码块里面使用const或let,则{}就会变成块级作用域

 

三者的使用场景

  1. let特别适合在for循环中的定时器里使用,作为强类型语法限制的变量。
  2. const适合作为一次性赋值的常量,多用于数据的版本号或id。
  3. var适合用来兼容老的IE浏览器,对于很久的项目使用的比较多,目前推荐使用let替代。

模板字符串/超级字符串

  1. 可以换行,并且原格式输出,自动添加制表符
  2. 可以使用${}的形式插入表达式或变量值

ES6里的解构赋值

对象

  • 目的是把每一个属性都变成独立的变量使用
    1. 使用{}去解构,不光解构自身的属性还会解构原型上的属性
    2. 对于对象自身没找到的属性,解构出来的变量的值是undefined

数组

  1. 使用[]去解构,按顺序解构
  2. 对于不存在的,得到的值也是undefined

解构赋值中的对象和数组的区别是?

  1. 对象结构按属性名解构
  2. 数组解构按位置解构

解构赋值中的默认值

  1. var [a=1] = []如果目标数据中没有对应的项,则使用默认值

 

function和箭头函数

相同点

  1. 都是函数
  2. 都有它的局部作用域

不同点

  1. 语法不同
  2. this指向不同
    1. function指向调用它的对象
    2. 箭头指向上一层作用域里的对象
  3. 不定参伪数组
    1. function函数中有arguments
    2. 箭头函数没有arguments,但是可以使用...扩展运算符得到类似的形参集合
  4. 箭头函数不可以作为构造函数使用,不可以使用new调用
  5. 箭头函数没有原型对象
  6. 箭头函数只能是匿名函数
  7. 箭头函数不能改变this指向

函数重载

一个函数根据传入的不同的参数,执行不同的业务,实现不同的效果,这就叫函数重载。

函数的尾部调用

一个函数返回的是另一个函数的返回值。

目的是两个:数据的传递和加工,为了节省内存的开关释放。

函数的链式调用

例子:$('#box').css('color','red').hide().show() 核心概念:每一个被调用的函数都会返回一个值,链式调用中的返回值一般都是操作的目标元素的this

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值