前端面试题目——JavaScript中 es6的新特性的总结

1、let、var、const

(变量提升、块级作用域、暂时性死区、重复声明、值可以改变)
在这里插入图片描述
在这里插入图片描述
let命令声明变量tmp之前,都属于变量tmp的“死区”。

在这里插入图片描述

在这里插入图片描述

① 什么是变量提升

console.log(a);
var a = 1;// 输出 undefined
 在代码中 使用 var 来声明变量的时候,会提到当前作用域的顶端,而赋值操作在原处不变
上面的两行代码相当于
var a;//(变量的声明)
console.log(a);
a = 1;

② 块级作用域(定义、作用)

块级作用域
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
为什么用块级作用域

  • 内层变量可能会覆盖外层的变量;
  • 用来计数的循环变量泄露为全局变量;

3、const定义的对象属性是否可以改变?

解释——结合对象的堆栈存储

  • 可以改变
  • 原因:对象是引用类型的,const定义的对象t中保存的是指向对象t的指针,这里的“不变”指的是指向对象的指针不变,而修改对象中的属性并不会让指向对象的指针发生变化,所以用const定义对象,对象的属性是可以改变的。
  • 基本数据类型——存储在栈区
    Object——具体对象存储在堆区,栈区存放堆的地址
    在这里插入图片描述

2、箭头函数

① 箭头函数

特性:(没有构造函数能力、this指向问题)
在这里插入图片描述
在这里插入图片描述

  • 不能为箭头函数命名:箭头函数是函数表达式,是匿名,用完就扔了,所以没有构造函数的构造能力,内部没有this指向,而是继承父类的this指向
    在这里插入图片描述

② 回调函数

  • 理解了
    首先定义一个函数,这个函数的特点:你定义了,但是并不会马上执行,而是要作为参数传入另一个函数
    在使用另一个函数的时候,加载参数,这时候会 回调你之前定义的函数(实现了异步?)

③ 立即执行函数

立即执行函数
在这里插入图片描述

  • 作用
    页面加载完成后只执行一次的设置函数。
    将设置函数中的变量包裹在局部作用域中,不会泄露成全局变量。
(function () {
    console.log("app")
})()

④ 严格模式

什么是严格模式

在这里插入图片描述
在这里插入图片描述

开启严格模式

为脚本开启严格模式

在这里插入图片描述
只为函数开启严格模式
在这里插入图片描述

严格模式下的变化

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

严格模式下的缺点

在这里插入图片描述

3、解构

ES6的解构说白了就是能够让我们一次性取到多个值:分为数组解构和对象解构
就是一次性创建多个变量
在这里插入图片描述

还可以跳过一些元素解构
var [,,three] = [1,2,3]; // three=3
var {name:nameA,age:ageA}={name:"Jhon",age:23};// nameA="Jhon",ageA=23
如果属性名和变量名一致时,可以缩写
var {name,age}={name:"Jhon",age:23};// name="Jhon",age=23

在这里插入图片描述

4、promise

JS中的promise对象是什么,是如何实现异步的,async和await是什么

5、set()和map()

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值