JS常见面试试题总结【去重、遍历、闭包、继承等】

来讲解一下“JS常见面试试题总结【去重、遍历、闭包、继承等】”的完整攻略。

一、去重

JS中去重的方法有很多种,我这里介绍两种比较常见的方法。

1.1 利用Set去重

let arr = [1, 2, 3, 1, 2, 3];
let unique = [...new Set(arr)];
console.log(unique); // [1, 2, 3]

1.2 利用reduce方法去重

let arr = [1, 2, 3, 1, 2, 3];
let unique = arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(unique); // [1, 2, 3]

二、遍历

JS中常用的遍历方法有很多种,比如for循环、forEachmapfilter等等。

2.1 for循环遍历数组

let arr = [1, 2, 3];
for (let i = 0; i < arr.length; i++) {
  console.log(arr[i]);
}

2.2 forEach方法遍历数组

let arr = [1, 2, 3];
arr.forEach((item) => {
  console.log(item);
});

2.3 for...in循环遍历对象

let obj = {a: 1, b: 2, c: 3};
for (let key in obj) {
  console.log(key, obj[key]);
}

2.4 Object.keys方法遍历对象

let obj = {a: 1, b: 2, c: 3};
let keys = Object.keys(obj);
keys.forEach((key) => {
  console.log(key, obj[key]);
});

三、闭包

闭包是JS中一个很重要的概念,也是面试中常被问到的问题。下面是一个简单的例子:

function fn() {
  let num = 0;
  return function() {
    num++;
    console.log(num);
  }
}
let f = fn();
f(); // 1
f(); // 2
f(); // 3

这里的fn函数返回了一个内部函数,这个内部函数持有了fn函数中定义的num变量,并且每次调用这个内部函数的时候,num变量的值都会加1。

四、继承

JS中的继承也是面试中经常问到的问题,下面是一个用ES6的class关键字实现继承的例子:

class Animal {
  constructor(name) {
    this.name = name;
  }

  sayHi() {
    console.log(`My name is ${this.name}`);
  }
}

class Cat extends Animal {
  constructor(name) {
    super(name);
  }

  sayHi() {
    console.log(`Meow, My name is ${this.name}`);
  }
}

let cat = new Cat('Tom');
cat.sayHi(); // Meow, My name is Tom

这里我们定义了一个Animal类和一个Cat类,通过extends关键字实现了Cat类对Animal类的继承,即Cat类继承了Animal类的所有属性和方法。同时,Cat类还重写了sayHi方法,使得猫叫和动物叫有所区别。

以上就是“JS常见面试试题总结【去重、遍历、闭包、继承等】”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS常见面试试题总结【去重、遍历、闭包、继承等】 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • JS实现给数组对象排序的方法分析

    下面是一份详细讲解“JS实现给数组对象排序的方法分析”的攻略。 一、前言 数组是 JavaScript 中非常常见的一种数据结构,它可以用来存储一系列的数据。而在实际的开发过程中,我们会经常需要对数组进行排序,这里我们就来详细讲解一下如何使用 JavaScript 实现给数组对象排序的方法。 二、排序方法详解 JavaScript 提供了三个内置的方法来对数…

    算法与数据结构 2023年5月19日
    00
  • Javascript中的常见排序算法

    Javascript中的常见排序算法 在Javascript中,排序算法是非常基础和常见的算法之一,也是大多数编程语言都会涉及到的一部分。在实际应用场景中,常见的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序等。 冒泡排序 冒泡排序是一种简单易懂的排序算法,其中每一趟都按照从前往后的顺序比较两个相邻的元素,如果前一个元素大于后一个元素,则交换这…

    算法与数据结构 2023年5月19日
    00
  • 利用JavaScript在网页实现八数码启发式A*算法动画效果

    下面是利用JavaScript在网页实现八数码启发式A*算法动画效果的完整攻略: 简介 八数码问题是指在一个33的方格上,放置了1~8这八个数字,其中有一个空格可以移动,初态和目标态之间的变换最少需要几步。而启发式A算法是一种针对图形和网络中的路径规划问题的搜索算法。 利用JavaScript实现八数码启发式A*算法动画效果,可以帮助用户在屏幕上直观地看到计…

    算法与数据结构 2023年5月19日
    00
  • 2020年新浪最新PHP试题和答案解析

    2020年新浪最新PHP试题和答案解析攻略 作为新浪最新的PHP试题,本门考试难度较高。以下是一些考试攻略以及答案解析。 试题分析 本次试题由多道选择题和编程题组成,主要考察PHP语言基础、框架使用、数据库操作等方面的知识。 选择题 本次选择题共15道,主要考察PHP基础语法、函数使用、面向对象编程、异常处理等方面的知识。 编程题 本次编程题共2道,主要考察…

    算法与数据结构 2023年5月19日
    00
  • Java 直接插入排序的三种实现

    Java 直接插入排序的三种实现 本文将介绍 Java 中直接插入排序的三种实现方式,分别为插入排序、希尔排序和折半插入排序。 插入排序 插入排序是一种简单直观的排序算法,其基本思想是将一个待排序的元素插入到已排好序列中的适当位置。 以下是 Java 中插入排序的实现代码: public static void insertSort(int[] arr) {…

    算法与数据结构 2023年5月19日
    00
  • JavaScript算法面试题

    JavaScript算法面试题攻略 1. 理解算法 在准备 JavaScript 算法面试前,需要先了解什么是算法。算法是指解决问题的一系列步骤,常用于解决复杂的问题,在计算机科学中有非常重要的应用。 2. 熟悉常见数据结构 准备算法面试的重点是熟悉常见数据结构。这些数据结构包括数组、链表、栈、队列、堆、散列表等。 3. 学习算法题的分类 在解决算法问题之前…

    算法与数据结构 2023年5月19日
    00
  • c++冒泡排序详解

    c++冒泡排序详解 本文将对c++中的冒泡排序算法进行详解,并提供两个示例以方便读者理解。 冒泡排序的原理 冒泡排序算法通过不断比较相邻两个元素的大小,如果发现顺序不对就交换它们的位置,经过一次比较后就能确定一个元素的最终位置,再对剩余未排序的元素重复进行相同的操作,直到所有元素按照大小顺序排列完成。它的名字“冒泡”的意思即为像水泡一样,大的元素会一步一步向…

    算法与数据结构 2023年5月19日
    00
  • PHP排序算法类实例

    让我先给出该攻略的大纲: 算法类的设计思路 冒泡排序算法示例 快速排序算法示例 使用算法类进行排序 接下来,我将详细讲解每一步内容。 1. 算法类的设计思路 首先,我们需要为排序算法创建一个类,这个类应该包含常见排序算法的实现函数。这些函数应该是静态函数,以便我们可以直接访问它们,而不必实例化排序类。 我们还需要实现一些通用的辅助函数,这些函数可以在算法函数…

    算法与数据结构 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部