首页 > 编程语言 >前端面试题 - javaScript系列

前端面试题 - javaScript系列

时间:2023-01-21 13:33:20浏览次数:68  
标签:10 面试题 const 前端 javaScript console let var 20

Time: 2023-01-20 21:14:37

ES6 系列

1. 说说var、let、const 之间的区别

var、let、const三者区别可以围绕下面五点展开:

  • 变量提升
  • 暂时性死区
  • 块级作用域
  • 重复声明
  • 修改声明的变量
  • 使用

变量提升

var 声明的变量存在变量提升,即变量可以在声明之前调用,值为undefined

let和const不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错

// var
console.log(a)  // undefined
var a = 10

// let 
console.log(b)  // Cannot access 'b' before initialization
let b = 10

// const
console.log(c)  // Cannot access 'c' before initialization
const c = 10

暂时性死区

var不存在暂时性死区

let和const存在暂时性死区,只有等到声明变量的那一行代码出现,才可以获取和使用该变量

// var
console.log(a)  // undefined
var a = 10

// let
console.log(b)  // Cannot access 'b' before initialization
let b = 10

// const
console.log(c)  // Cannot access 'c' before initialization
const c = 10

块级作用域
var不存在块级作用域

let和const存在块级作用域

// var
{
    var a = 20
}
console.log(a)  // 20

// let
{
    let b = 20
}
console.log(b)  // Uncaught ReferenceError: b is not defined

// const
{
    const c = 20
}
console.log(c)  // Uncaught ReferenceError: c is not defined

重复声明
var允许重复声明变量

let和const在同一作用域不允许重复声明变量

// var
var a = 10
var a = 20 // 20

// let
let b = 10
let b = 20 // Identifier 'b' has already been declared

// const
const c = 10
const c = 20 // Identifier 'c' has already been declared

修改声明的变量
var和let可以

const声明一个只读的常量。一旦声明,常量的值就不能改变

// var
var a = 10
a = 20
console.log(a)  // 20

//let
let b = 10
b = 20
console.log(b)  // 20

// const
const c = 10
c = 20
console.log(c) // Uncaught TypeError: Assignment to constant variable

使用

能用const的情况尽量使用const,其他情况下大多数使用let,避免使用var

2. ES6中数组新增了哪些扩展?

链接如下

3. ES6中对象新增了哪些扩展?

4. ES6中函数新增了哪些扩展?

5. ES6中新增的Set、Map两种数据结构怎么理解?

6. 你是怎么理解ES6中 Promise的?使用场景?

7. 怎么理解ES6中 Generator的?使用场景?

8. 你是怎么理解ES6中Proxy的?使用场景?

9. 你是怎么理解ES6中Module的?使用场景?

10. 你是怎么理解ES6中 Decorator 的?使用场景?

Javascript系列

1. 说说Javascript中的数据类型?区别?

标签:10,面试题,const,前端,javaScript,console,let,var,20
From: https://www.cnblogs.com/isgavin/p/17063740.html

相关文章

  • 面试题-索引设计的原则
    索引设计的原则针对于数据量较大,且查询比较频繁的表建立索引。针对于常作为查询条件(where)、排序(orderby)、分组(groupby)操作的字段建立索引。尽量选择区分度高......
  • LeetCode.面试题02.05-链表求和-题解分析
    题目来源面试题02.05.链表求和题目详情给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并......
  • javaScript
    JavaScript是一门流行脚本快速入门跟css一样,可以直接写在html中,放在script标签中alert可以弹出弹窗,内容用单引号引入的时候一定要成对出现,不能自闭和基本语法入门......
  • JavaScript 中断forEach循环
    1、使用Array.prototype.some()方法代替some()方法会在找到第一个符合条件的元素时停止循环。例如:letarray=[1,2,3,4,5];array.some(function(element,inde......
  • javaScript
    JavaScript是一门流行脚本快速入门跟css一样,可以直接写在html中,放在script标签中alert可以弹出弹窗,内容用单引号引入的时候一定要成对出现,不能自闭和 基本语法入门......
  • thymeleaf前端通用格式
    原文地址:https://www.cnblogs.com/DIVEY/p/10213390.html<!DOCTYPEhtml><htmlxmlns:th="http://www.thymeleaf.org"><head><metahttp-equiv="Content-Type"conten......
  • 前端面试题合集-第一篇
    前端面试题合集-第一篇......
  • 面试题-什么是最左前缀法则?什么时候索引将失效?
    什么是最左前缀法则?什么时候索引将失效?如果索引了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳跃某一列,索......
  • JavaScript 函数所能传递的最大参数
    取决于实现,取决于浏览器和操作系统标准没有规定(65535一般是有的)来源:https://stackoverflow.com/questions/22747068/is-there-a-max-number-of-arguments-javascript-fun......
  • Javascript数字精度丢失的问题,如何解决
    一、问题分析计算机存储以二进制的方式,而0.1在二进制中是无限循环的一个数字,所以会出现裁剪,精度丢失会出现,0.100000000000000002===0.1,0.200000000000000002===0.2......